프로그래밍/git

[git] Squash - 여러개의 커밋을 하나로

gguldh 2018. 7. 23. 13:40

$ git rebase -i HEAD~3
$ git merge --squash TARGET_BRANCH


Squash

merge할 브랜치의 커밋 이력을 하나로 압축한 별도의 커밋을 만들고 헤드 브랜치에 merge한다. 일반 merge와 다르게 하나의 부모커밋(헤드브랜치 기준)만 갖는다.


rebase에 대한 내용은 여기를 참조

-i는 interactive

HEAD~3은 3번째 전 커밋까지 (이전 하나의 커밋은 HEAD^)



해당 명령어를 입력하면

vi에디터가 보여진다.

pick은 해당 커밋을 사용한다는 거고

squash는 이전 커밋에 같이 합친다는 내용이다.

커맨드를 수정한 후 :wq를 누르면

다른 vi창이 뜨면서 커밋메세지를 rewrite할 수 있다.


출처: http://meetup.toast.com/posts/39