Git, SSH

justyoon·2023년 3월 13일
1

AI5 Python/Django

목록 보기
1/31

Git ?

Git은 개발자들이 협업하는 과정에서 매우 편리한 기능을 제공하는 버전관리 도구입니다. 최근엔 개발자가 Git을 이해하고 있다는 전제로 개발업무를 진행하고 있을 정도로 개발자의 깃을 사용하는 업무 비중이 높아졌습니다.


버전

버전이란 프로그래밍 작업으로부터 생성된 결과물이 이전과 유의미한 차이를 가진 것 입니다. 즉 개발은 이러한 버전들을 쌓아 결과물을 만드는 과정이고 Git을 통해 차곡차곡 쌓인 버전들을 쉽게 통제하여 효율적으로 개발을 진행할 수 있습니다.

모두 버전을 의미하는 같은 말입니다

  • meaningful change

  • version

  • commit


구성요소

그림은 Git이 관리하는 가상의 공간입니다 (실재하는 공간은 x)

➡️작업폴더(디렉토리)

  • 작업폴더 말 그대로 작업을 하는 단계

  • $ git init 명령어로 .git 가상폴더가 존재하는 곳

  • 변경사항을 추가 🟰 $ git add(애드)

➡️스테이지

  • 변경사항들을 추가하거나 취소하면서 작업물을 관리하는 단계

  • 유의미한 작업변화가 있을때 맘에드는 변경사항을 선별 🟰 $ git commit(커밋)

➡️저장소(레포지토리)

  • 레포지토리(저장소)는 최종적으로 커밋(버전)이 존재하는 공간입니다.

  • 스테이지에서 선별된 커밋들을 연결된 원격 저장소로 업로드 🟰 $ git push(푸쉬)

  • 반대로 원격저장소에서 로컬로 다운로드 🟰 $ git pull(풀)


정리하면 add ➡️ commit ➡️ push | pull
이 과정을 반복하면서 작업을 진행합니다.


Git Bash 명령어

개발환경은 상황에 따라 제한적일 수 있다.
가장 기본적인 형태로 사용할 줄 알아야 여러 환경에 대응 가능하겠다.

자주 쓰이는 명령어

git clone [url] . 🟰 원격 저장소를 연결하고 브랜치를 내 컴퓨터로 복사❗

  • 뒤에 . 붙이면 모든 브랜치를 복사합니다
  • 주로 포크한 저장소를 클론합니다.

git init 🟰 로컬 저장소 생성

git remote add origin [url] 🟰 원격 저장소와 연결

  • git remote add upstream [url] 🟰 포크한 저장소의 원본 저장소(upstream)를 연결
  • git fetch upstream 🟰 원본 저장소의 변경사항을 포크 저장소에 반영 (merge를 수행하지 않는다)

git remote remove origin [url] 🟰 원격 저장소와 연결해제
git remote -v 🟰 디렉토리에 연결된 원격 저장소를 확인
git add . 🟰 .을 붙이면 모든 변경사항을 추가

  • git add [file or directory] 🟰 특정 파일이나 폴더만 추가

git reset 🟰 추가된 변경사항 전부취소
(❗협업시 커밋로그 맞지 않을 수 있기 때문에 사용 지양)
git commit 🟰 추가한 변경사항들 커밋

  • git commit -m [message] 🟰 메시지와 같이 커밋
  • git commit --amend 🟰 커밋 덮어쓰기

git status 🟰 현재 커밋되지 않은 모든 버전 상태 확인
git log 🟰 커밋된 기록 확인
git branch [name] 🟰 브랜치 추가
git switch or checkout [name] 🟰 해당 브랜치로 이동하기
git checkout -b [name] 🟰 새로운 브랜치 만들면서 바로 이동
git push origin [name] 🟰 로컬 저장소의 커밋을 해당 브랜치에 업로드


자주 쓰는 터미널 명령어

계속 쓰는 명령어

pwd 🟰 현재 경로 출력
ls 🟰 현재 폴더에 존재하는 파일 및 폴더를 출력
ls -al 🟰 현재 폴더에 존재하는, 숨김파일 및 폴더까지 모두 리스트 형태로 보기
cat [파일|폴더이름] 🟰 파일 내용 보기
cd [파일|폴더이름] 🟰 [파일|폴더이름]으로 이동
cd .. 🟰 상위폴더로 이동
vi [파일|폴더이름] 🟰 [파일|폴더이름]을 vi 편집기로 편집
clear 🟰 터미널 내역 지우기
mkdir 🟰 폴더 생성
touch 🟰 파일 생성
rm -r 혹은 rm 🟰 삭제
rm -rf 🟰 강제삭제

입력모드

a 혹은 i를 입력해 입력 모드로 전환
:set number 🟰 줄 보여주기
:w 🟰 텍스트 저장
:q 혹은 esc 🟰 입력 모드 닫기
:wq 🟰 텍스트 저장하고 닫기
변경사항을 취소하려면 입력모드를 빠져나온 뒤 u 🟰 undo

폴더는 영어로 쓰고 띄어쓰기대신 _ 사용이 국룰?


SSH(Secure Shell)

SSHRSA알고리즘을 이용해 안전한 통신이 가능하게 해주는 프로토콜이다. SSH를 이용해 Public Key(공개키)Private Key(비밀키)를 생성하고, 공개키를 깃헙에 등록, 비밀키를 로컬 컴퓨터에 보관하여 로컬 컴퓨터에서 깃헙의 원격 저장소에 따로 로그인하지 않고도 안전하게 접근할 수 있다.
SSH에 대한 더 자세한 정보는 여기

profile
with gratitude, optimism is sustainable

0개의 댓글