pull request시에 하나의 commit message를 전달하기 위한 목적으로 여러 번 commit한 것을 합쳐서 하나의 commit를 만들려면 rebase를 사용하면 된다.
아래 3개의 commit을 하나로 묶어서 push할 예정이다.
rebase -i 옵션을 사용하여 아래와 같이 주면 HEAD부터 3개의 commit를 합친다.
$ git rebase -i HEAD~3
명령을 주면 편집창에서 수정할 수 있게 되는데, 아래와 같이 log가 나오는 순서의 반대인 커밋한 순서대로 나온다. 여기서 2,3번을 pick에서 squash로 변경하면 합치겠다는 의미이다.(그냥 편집창이므로, pick을 지우고, squash로 다시 써주면 된다.
squash로 변경한 후에 저장하고 나오게 되면, commit message를 수정할 수 있는 창이 나온다.
주석으로 되어 있는 부분을 제외하고 합쳐진다고 보면 된다. 적절히 메세지를 수정하고 저장하고 나오면, 아래와 같이 성공메세지가 나온다.
다시 push를 해보면 commit이 하나만 나와 있고, commit message도 합쳐진 것을 확인할 수 있다.
주의 : 이미 upstream에 올라간 것을 묶으면 난리(?)난다. rebase는 무조건 local(작업하고 있는 저장소)에 대한 commit에 한해서만 사용해야 한다.
참고
http://ift.tt/1DyxAAS
http://ift.tt/1GlF8tu
from WordPress http://ift.tt/1FmeBIl
댓글 없음:
댓글 쓰기