git 에서 merge 커밋 수정하기

git 를 사용하다보면 merge 후에 merge 내용에 대해서 수정하고 싶을 때가 있다. 물론 merge 이후에 새로운 수정 커밋을 만들어도 괜찮다. 하지만, 수정 커밋을 남기고 싶지 않다면, 이렇게 해 보기 바란다.

git 에서 commit 를 수정할 때 가장 유용한 방법은 git rebase -i 이다. 그런데 별다른 옵션없이 git rebase -i 를 수행하면, merge 커밋은 보이지 않고, 개별 커밋이 나타난다. 이래서는 merge 커밋을 수정하기가 어렵다.

이 때 필요한 것이 -p 이다. -p 를 사용하면 merge 커밋이 개별 커밋으로 쪼개지는 대신에 하나의 merge 커밋이 나타난다. 따라서 merge 커밋에 수정하고 싶은 것이 있다면, 새로운 수정 커밋을 작성하고 git rebase -i -p 로 수정 커밋을 merge 커밋에 fixup 또는 squash 하면 된다.

예를 들어, git rebase -i -p 를 했을 때 편집기에 다음과 같이 보인다면,

pick 834349f Merge remote-tracking branch 'merge'
pick 2c5474b 수정커밋

다음과 같이 변경하고 저장하면 된다.

pick 834349f Merge remote-tracking branch 'merge'
f 2c5474b 수정커밋

이렇게 하면, 수정커밋이 merge 커밋에 적용된다.

사실 -p 옵션은 merge 커밋을 수정할 때 뿐만 아니라 git rebase 의 다른 기능에도 적용될 수 있으니, 잘 활용하기 바란다.

댓글

이 블로그의 인기 게시물

토렌트: < 왕좌의 게임 > 시즌 1 ~ 시즌 8 완결편 마그넷

토렌트: < 스타워즈 > Ep.1 ~ Ep.6 마그넷

토렌트: NGC < 코스모스 > 우리말 더빙 전편(1편~13편) 마그넷