이미 commit을 완료한 뒤 commit 메시지를 수정해야 할 때 사용하는 방법입니다.
마지막 즉, 가장 최근의 commit 메시지를 수정할 땐 --amend
옵션을 사용합니다.
git commit --amend -m "새롭게 쓴 메시지"
마지막 commit 보다 그 이전의 commit 메시지를 수정하는 방법입니다.
rebase
를 사용하면 해당 commit으로 이동한 뒤 메시지를 수정하고 해당 branch에 다시 merge 하는 방식으로 commit 메시지를 수정합니다.
아래와 같이 5개의 commit이 완료된 상황입니다.
rebase
와 i
명령어를 함께 사용하여 rebase
를 대화형으로 조작할 수 있습니다.
git rebase -i HEAD~3
HEAD~3
은 최근 commit log(HEAD 기준) 중 3개를 불러온다는 뜻입니다.
그 결과입니다.
여기서 6ccca6a
commit의 feat: Fourth commit
메시지를 수정해보겠습니다.
먼저 i
를 누른 뒤 pick
부분을 reword
로 바꿔주면 됩니다.
그 뒤 ESC
를 누르고 :wq
를 입력하면
아래와 같이 수정할 수 있게 terminal이 바뀝니다.
여기서도 i
를 눌러 commit 메시지를 수정해주고 ESC
를 누른 뒤 :wq
를 입력하면 끝입니다.
feat: Fourth commit
이 feat: reword Fourth commit
으로 바뀌었고
commit id가 6ccca6a
에서 f84ca6c
로 바뀌었습니다.
이미 Github
등 원격에 commit이 올라가 있다면
git push --force <branch_name>
을 하여 덮어씌우는 방법입니다.
혼자 작업하고 관리하는 프로젝트라면 큰 문제가 되지 않지만 다른 팀원과 협업하는 프로젝트라면 원격의 내용을 덮어쓰기 때문에 다른 팀원들이 local에 있는 commit 메시지를 수동으로 수정해야 하는 문제가 있습니다.