모든 브랜치를 보고 싶을 때

git branch -av

 

특정 브랜치/commit 으로 바꾸고 싶을 때

git checkout [branch 명/commit number]

 

내가 있는 경로의 git remote 저장소를 알고 싶을 때

git remote -v

 

gerrit push 명령어

git push refs/heads/[branch 명]


// <예시>
// master 브랜치에 push 하고 싶을 경우
// $ git push refs/heads/master

gerrit push 가 안될 경우?
→ commit message 에 Change-Id 가 없을 가능성이 큼.
→ 관련한 명령어는 추후 추가 예정. 보통은 error 메세지에 나온 명령어 그대로 입력하고 git commit --amend 로 commit 하면 Change-Id 가 추가 되어 다시 push 를 하면 push 가 됨.

 

Commit 한 뒤에 Commit 한 파일을 수정하고 싶을 때

// 수정하고 싶은 사항 수정 후, git status 로 수정한 파일 확인
git add [수정한 파일]
git commit --amend

 

 

N개 Commit 을 patch 파일로 만들고 싶을 경우

git format-patch -[N]

// <예시>
// 최신 commit 부터 3개 commit 을 patch 파일 생성하고 싶을 경우

// $ git format-patch -3

* patch 파일과 diff 파일의 차이
: git diff 로 생성판 파일은 파일을 수정한 내용만 있고 git format-patch 로 생성한 파일은 내부를 보면 소스 코드 수정 사항과 함께 commit 까지 포함되어 있다. commit message 까지 같이 전달하고 싶으면 git format-patch 로 patch 파일을 생성하여 전달하면 되고, 소스 코드 수정 사항만 내보내고 싶으면 git diff 로 diff 파일을 만들어 전달하면 된다.

 

staged 에 수정한 사항을 diff 로 저장하고 diff 파일을 적용할 때

// test.diff 에 수정 사항 저장
git diff > test.diff

// test.diff 를 적용
git apply test.diff

 

commit 한 사항을 patch 파일로 저장하고 patch 파일을 적용할 때

// commit 2개를 patch 파일로 만들기
git format-patch -2

// test.patch 파일을 git에 적용하기
git am test.patch

 

모든 수정 사항을 초기화하고 HEAD 로부터 commit N 개 아래 상태로 돌리고 싶을 때

git reset --hard HEAD~[N]

 // <예시>
 // 최신 commit 에서부터 2개 이전 commit 으로 돌아가고 싶을 때
 // git reset --hard HEAD~2

* 신규로 생성한 파일은 지워지지 않는다.

 

+ Recent posts