코드를 수정하고 PUSH 했는데, Commit 메시지에 오타가 있었다. 따라서 rebase로 커밋 메시지를 수정해보았다.
먼저, Git log
로 Commit한 내역을 확인했다.
git rebase -i HEAD~3
명령어로 HEAD(최신)부터 총 3개의 Commit을 수정하겠다고 지정했다.
그러면 아래와 같은 VI 에디터가 열린다.
여기서 수정할 Commit의 pick
을 reword
로 변경하고 :wq
로 저장한다.
그럼 (local의) Commit 메시지가 수정된다.
이렇게 수정된 내역은 local에만 반영되어 있으므로 PUSH 해야 한다.
rebase
는 커밋을 복제하여 새로운 노드를 만들기 때문에, --force
없이 PUSH할 경우 똑같은 Commit 두 개가 들어가게 된다.
따라서 이미 원격 저장소에 올라간 내역을 수정하려면 git push --force
명령으로 서버의 히스토리를 새로 덮어 씌워야 한다.
💡 협력 시엔 rebase를 할 때는 히스토리가 꼬여서 중복 Commit이 생길 수 있으므로 조심해야 한다.
참고 사이트:
리모트 저장소에 푸시한 커밋은 리베이스하지 말 것
Git Rebase 제대로 알고 쓰기 (feat. cherry-pick)
git push origin 브랜치 -f
로 Force 했다.
git log
로 커밋 메시지가 수정된 것을 확인할 수 있다.
[git] 커밋 메세지 수정하기 (changing commit message)