개요
Commit 메시지를 다 못 썼는데, 실수로 엔터를 눌러버렸다…….
원격 저장소에 저 메시지로 Push 할 수는 없으니, 커밋 메시지를 수정하는 방법을 정리해둔다.
마지막 커밋 메시지 수정
git commit --amend
# --amend : 이전 commit 수정
--amend 옵션을 사용하면 자동으로 텍스트 편집기를 실행시켜 마지막 커밋 메시지를 열어준다. 편집기에서 메시지를 변경하고 저장하면 된다.
💡 commit 이후 새로운 수정 사항까지 포함하고 싶은 경우에도 git commit --amend를 사용할 수 있다.
내용 수정 -> git add -> git commit --amend 순으로 실행하면 된다.
여러 커밋의 메시지 수정
여러 개의 커밋 메시지를 수정할 때는 git rebase를 이용할 수 있다.
먼저 어떤 commit을 수정해야 하는지 확인하기 위해 commit 히스토리를 살펴보자.
최신 3개의 commit을 수정한다고 했을 때는 아래와 같은 명령을 사용한다.
git rebase -i HEAD~<수정할 commit 수>
# -i : 대화형 모드로 rebase
# 예시
git rebase -i HEAD~3
이 명령어는 실제로 수정하려는 commit의 부모를 가리킨다. 실행 시 수정할 commit 목록이 포함된 스크립트를 편집기로 보여준다. commit 목록의 순서는 git log 명령 출력의 역순이다. 즉, 오래된 commit 순으로 출력된다.
주석 처리된 Commands를 보니, reword 또는 edit을 사용하면 commit 메시지를 수정할 수 있는 것 같다. 각각 어떻게 수정하는지 확인해보기 위해 두 번째, 세 번째 commit에 대해 아래와 같이 편집 후 저장한다.
reword; commit message 수정
저장하면 reword 명령으로 수정할 commit을 수정할 수 있는 편집기가 실행된다.
메시지를 수정 후, 편집기를 빠져나온다.
edit; commit amend
edit은 commit을 amend할 수 있는 상태로 만들어 준다. 메시지에서 안내하는 대로 git commt --amend를 사용하여 commit을 수정하고 rebase --continue를 실행한다.
git commit --amend
git rebase --continue
참고 문서
[git] 커밋 메세지 수정하기 (changing commit message)