메모

Git 관련 개념 및 자주 사용하는 명령어 정리

  • 로컬 저장소 생성
$ git init

현재 디렉토리에 git 파일을 생성해서 로컬 저장소로 만드는 명령어

워킹 트리(Working Tree): 작업하는 파일이 존재하는 영역
인덱스(Index): 워킹 트리의 파일이 저장소로 가기 전에 잠시 거쳐가는 임시 영역
저장소(Repository): 버전 관리가 이뤄지는 영역

로컬 저장소로 만들면 워킹 트리에 있는 파일들의 변경 사항을 추적하고 관리할 수 있습니다. 추적한다는 의미는 디렉토리에서 코드를 수정하거나 파일을 삭제했을 때 다시 되돌리거나 변경을 적용할 수 있음을 의미합니다.

 

 

  • 스테이징(stage)
$ git add

변경된 파일을 인덱스 영역에 추가합니다. 인덱스 영역에 파일을 추가하는 행위를 스테이징이라고 합니다.

 

$ git add .

파일을 하나하나 추가할 수도 있지만 명령어를 사용해서 git이 추적한 변경된 모든 파일을 일괄적으로 인덱스에 추가할 수 있습니다.

 

$ git reset

만약 인덱스에 추가된 파일을 다시 워킹 트리로 되돌리고 싶다면 reset 명령어를 사용합니다.

 

$ git reset HEAD fileName

파일 이름을 지정해서 특정 파일만 되돌릴 수 있습니다. 

 

$git reset HEAD 

특정 커밋으로 파일들을 되돌릴 수 있습니다.

 

 

  • 커밋(commit)
$ git commit -m "message"

인덱스 영역에 있는 스테이징된 파일을 특정 메시지와 함께 저장소에 반영합니다. 커밋이 완료된 파일들은 원격 저장소로 옮겨질 준비가 됐습니다.

 

 

  • 푸시(push)
$ git push origin develop

현재 브랜치에서 커밋된 파일(변경 사항을 적용하려고 하는 파일)들을 origin이라는 원격 저장소의 develop 브랜치에 업로드합니다. 만약 해당 이름을 가진 브랜치가 원격 저장소에 없다면 새로 생성합니다.

 

$ git push -u origin develop

로컬 저장소의 develop 브랜치에서 커밋된 파일들을 원격 저장소의 develop 브랜치에 업로드합니다.

 

 

  • 머지(merge)
$ git merge develop

현재 HEAD가 위치한 브랜치에 develop 브랜치의 변경 사항을 가져와 합칩니다. 

 

 

  • 변경사항 되돌리기
$ git restore .

만약 git이 추적하는 모든 파일들의 변경 사항을 되돌리고 싶다면 이 명령어를 사용합니다.

 

 

  • 추적되지 않은 파일 삭제하기
$ git clean -fd

로컬 저장소에서 추적되지 않는 파일들을 모두 삭제합니다.

 

 

  • 파일 또는 디렉토리 추적 중지하기
$git rm --cahed file_name

 

 

  • 브랜치(branch)
$ git branch

현재 로컬 저장소에 만들어진 모든 브랜치를 확인합니다.

$ git branch -r 
원격 저장소의 모든 브랜치를 확인합니다.
$ git branch -a 
로컬과 원격 저장소의 모든 브랜치를 확인합니다.
$ git checkout develop

develop 브랜치로 이동합니다. git은 HEAD라는 포인터를 사용해서 현재 작업 중인 브랜치를 가리 키는데, checkout은 이 HEAD를 다른 브랜치를 가리키도록 하는 것을 의미합니다. 

$ git checkout -b develop master

master 브랜치로부터 develop 브랜치를 생성하고 develop 브랜치로 이동합니다. 주로 새로운 기능을 작업하기 위해 특정 브랜치로부터 새로운 브랜치를 만들 때 사용합니다.

$ git branch -m develop

현재 HEAD 포인터가 가리키고 있는 브랜치의 이름을 develop으로 변경합니다. 원하는 브랜치에 checkout 한 뒤 이름을 변경하고 싶을 때 사용합니다.

$ git branch -d develop

develop이라는 이름의 로컬 브랜치를 삭제합니다.

$ git push origin --delete develop

origin이라는 원격 저장소의 develop 브랜치를 삭제합니다. 로컬 브랜치가 아닌 원격 저장소에 있는 브랜치를 삭제하는 것이므로 push 명령어를 사용합니다.

 

 

  • 원격 저장소(remote)
$ git remote -v

로컬 저장소와 연결된 원격 저장소를 확인할 수 있습니다. 다른 사람의 원격 저장소를 fork한 경우 나의 원격 저장소는 origin, 내가 fork한 원격 저장소는 upstream이 됩니다. 

 

$ git remote add origin repository_path

현재 로컬 저장소와 원격 저장소를 연결합니다. repository_path에는 연결할 원격 저장소의 GitHub 주소가 들어가고 origin은 그 저장소를 부르기 위한 레이블 이름입니다. 

 

 

  • 풀(pull)
$ git pull origin

당겨온다라는 뜻으로 원격 저장소의 파일을 가져와 현재 로컬 저장소에 머지합니다. 

※ fetch와의 차이점은 머지의 유무입니다. 

 

  • 클론(clone)
$ git clone repository_path

원격 저장소의 파일들을 복사해서 가져옵니다. 주로 GitHub 저장소에 업로드된 파일을 다운로드할때 사용합니다.

'메모' 카테고리의 다른 글

백준 OJ 시스템 언어별 정보  (0) 2021.11.11