커밋 메시지는 의도를 전달한다. 하지만 가끔 메시지 작성을 실수한다. 심지어 잘못 작성한 커밋 메시지를 뒤늦게 발견했다. 어떻게 수정할 수 있을까?
- 방금 작성한 커밋
- 과거 커밋
이전 커밋은 크게 방금 작성한 커밋과, 과거 커밋으로 나뉜다.
1. 방금 작성한 커밋 수정하기#
git commit --amend 방금 작성한 커밋을 수정하기 위해서는 다음과 같이 작성한다.amend(수정)을 사용해서 쉽게 덮어쓴다.
--force-with-lease: 원격저장소에 푸시한 커밋은 똑같이 수정하고 ‘강제 푸시’ 해야 한다.
2. 과거 커밋 수정하기#
git log 먼저 수정하고 싶은 커밋을 확인하자.
방금 만든 커밋 수정하기에 비해 골치 아프다. 하지만 금방 익숙해질 수 있다.
2.1 여러 커밋#
git rebase -i HEAD~n - 마지막 커밋
n개를 표시한다. pick을reword로 수정한다.- 수정한 커밋 메시지를 작성하고 종료한다.
2.2 조금 더 오래된 커밋#

git log 명령을 실행해서 커밋내역을 확인한다. 예를 들어 수정하고 싶은 커밋이 0eb0d7로 시작하는 커밋일 때 HEAD를 바로 직전커밋인 230339로 이동해야 한다.
git rebase -i 230339 #<직전커밋> 수정하고 싶은 커밋에 직전커밋 로그로 이동하고 pick으로 표시되는 해쉬값을 edit으로 수정한다. 에디터로 작업을 마치면 해결하고 싶던 파일을 작성하고 추가하면 된다.

개발도구로 파일을 추가한 후 커밋 메시지를 수정했다.
2.3 정리하기#
여러 커밋을 수정하는 두 가지 방법을 알아봤다. 비교적 최근 커밋을 수정한다면 첫 번째(git rebase -i HEAD~n) 방법이 편리하다. 반면 조금 더 오래된 커밋을 수정해야 한다면 내역을 확인하고 직전
커밋으로 확인하는 두 번째 방법이 유용하다.
마치며#
흔히 마주하는 두 가지 상황을 알아봤다. 커밋을 최소한의 단위로 잘 나눠야 된다고 한번 더 느꼈다. 분기를 잘 나눠야 충돌과 같은 다른 문제가 발생했을 때도 쉽게 해결할 수 있다. 더불어 명료한, 좋은 커밋 메시지를 작성하는 방법도 관심이 생겼다.
