commit 메시지를 잘못 입력했거나, 혹은 디버깅용 코드를 포함하거나 간단한 실수를 코드에 포함하여 commit 하였을 때, 어떻게 대처를 해야 될까?
git reset -soft를 통해 commit을 삭제 후 다시 commit을 하는 방법도 있지만 더 예측 가능하면서 안전하게 직전 commit을 수정하는 방법이 있다.
바로 git commit의 옵션 중 --amend 옵션이다.
commit 메시지 수정하기
직전 commit의 메시지를 수정하려면 아래와 같이 git commit에 --amend 옵션을 사용하면 된다.
$ git commit --amend
만약 아래와 같이 마지막 commit 메시지를 "4th commit"으로 작성하려고 했는데, 실수로 "5th commit"으로 작성했다고 가정해 보자.
git commit --amend를 입력하면 아래와 같이 commit 메시지를 수정할 수 있는 에디터가 실행된다.
"4th commit"으로 메시지 내용을 수정 후 저장하면 commit 메시지가 수정된 것을 확인할 수 있다.
--message (-m) 옵션과 함께 사용하여 직전 commit의 메시지를 쉽게 덮어쓸 수 있다.
$ git commit --amend -m "4th commit"
주의사항
--amend를 사용하면 commit ID가 수정된다.
결론적으로 commit의 최종 작성 시간이 변경되므로 수정 전의 commit 과는 완전 다른 commit이기 때문에 ID도 변경된다. 위 이미지 중 git commit --amend를 사용하기 전과 후의 마지막 commit ID를 보면 변경된 것을 확인할 수 있다.
또한 git commit --amend 사용하기 전 이미 원격 저장소에 push를 했다면, git commit --amend를 이용하는 것은 새로운 commit을 만든 것과 비슷하기 때문에 원격 저장소의 브랜치와 갈라졌다는 것과 의미가 같다. 그러기에 force push를 이용해서 원격 저장소에 업데이트가 필요하다.
'ETC > Git' 카테고리의 다른 글
[Git] Git revert를 이용해 commit 되돌리기 (좀 멀리도) (1) | 2024.04.27 |
---|