git commit 메세지 수정하는 방법

2022. 9. 19. 21:30Git

728x90

오늘은 얼마 전 커밋 메시지에 오타가 나서 수정을 하기 위해 검색하면서 알게 된 커밋 메시지 수정 방법을 공유해보도록 하겠습니다.

크게 3가지 상황이 있을수 있는데 하나씩 전부 살펴보도록 하겠습니다.

 

1.  마지막으로 작성한 커밋 메시지에 수정사항이 있을 경우 (아직 push하지 않음)

2. 마지막 커밋 기준 n번째로 작성한 커밋 메시지에 수정사항이 있을 경우 (아직 push하지 않음)

3. 이미 커밋이 리모트 저장소에 push된 상태일 경우

 


1.  마지막으로 작성한 커밋 메세지에 수정사항이 있을 경우

아직 원격 저장소에 push하기 전이라면 amend(수정) 명령어를 입력해 간단하게 수정할 수 있습니다.

git commit --amend -m "수정된 커밋 메세지" // 또는 --amend만 입력후 설정해둔 텍스트 에디터로 수정

2. 마지막 커밋 기준 n번째로 작성한 커밋 메시지에 수정사항이 있을 경우

마찬가지로 원격 저장소에 push하기 전이라면 rebase 명령어에 i 옵션을 추가해 커밋 순서 변경 또는 메시지 수정을 할 수 있습니다.

만약 마지막 3번째와 4번째 커밋 메세지를 수정하고 싶다면 아래와 같이 명령어를 입력해주도록 합시다.

 

git rebase -i HEAD~4 // HEAD~N

 

입력하면 아래와 같이 최근 4개의 커밋이 출력됩니다.

 

// pick | 커밋 ID | 커밋 메세지

pick db8b4a6 feat: review post submit, edit
pick cab42a8 feat: review custom hook (manager Info)
pick d1663e0 feat: review badge
pick aa90827 fix: review optional field

 

이제 i를 눌러 수정모드로 들어간 뒤 수정하고자 하는 커밋 ID 앞에 있는 pick을 reword로 변경한 뒤 esc로 수정 모드를 종료하시고 :wq! 입력해주시면 저장됩니다. 자세한 vi 명령어는 해당 링크를 참고해주세요

 

reword d1663e0 feat: review badge
reword aa90827 fix: review optional field

저장을 하게 되면 reword를 붙힌 커밋에 한해 새로운 메시지를 작성하라고 뜹니다. 

 

 

여기서 마찬가지로 i로 수정모드로 들어간 뒤 메시지를 수정하시고 esc -> wq!로 저장해주시면 됩니다.


3. 이미 커밋이 리모트 저장소에 push된 상태일 경우

 

이미 저장소에 push가 됐을 경우는 위 방법으로 메세지를 수정한 뒤 --force 명령어를 통해서 강제로 원격저장소에 해당 커밋 메세지를 다시 덮어씌울수 있습니다.

 

git push --force 브랜치이름(develop, main)

 

필자는 혼자 개발을 진행중인 상태이기 때문에 크게 문제가 되지 않았지만 팀원들과 협업중이라면 conflict가 날 수 있기 때문에 팀원들과 충분히 상의하시고 진행하시길 바랍니다.

 

 

참고자료 : How To modify existing, unpushed commit (stack overflow)

 

How to modify existing, unpushed commit messages?

I wrote the wrong thing in a commit message. How can I change the message? The commit has not been pushed yet.

stackoverflow.com

'Git' 카테고리의 다른 글

Git 최초설정 및 사용해보기  (0) 2022.02.12