Just Do IT!

[Git] 이미 push한 commit 메세지 수정하기 본문

Git & Github

[Git] 이미 push한 commit 메세지 수정하기

MOON달 2023. 2. 17. 16:00
728x90

최종 프로젝트를 진행하면서 issue를 생성해서 이슈 번호를 붙이며 commit을 했었는데, push까지 다 한 뒤에야 issue 번호가 잘못되었다는 사실을 깨달았다. 그래서 이미 push한 커밋 메세지를 수정할 수 있을까 구글링하다가 결국 성공했다.

이슈 번호만 수정해서 제대로 pull request하고 merge까지 할 수 있었다.

이건 미래의 내가 다시 이런 실수를 할 때 볼 수 있도록 하는...ㅋㅋㅋ 기록이다.

 

 

 

 

 

 

1. 수정하고 싶은 commit 선택

git commit --amend

ammed를 이용하면 가장 마지막에 commit한 내용을 수정할 수 있다.

마지막 commit만 수정하는 건 매우 간단하다. 위의 명령어 입력 후 커밋을 수정할 수 있는 창이 뜬다.

그 창을 통해 수정을 완료한 후 esc를 누르고 :wq 를 해주면 된다.

 

하지만 나처럼 여러 커밋을 수정하고 싶다면 아래 명령어를 사용하면 된다.

git rebase HEAD~[커밋수] -i

 

이렇게 커밋 수를 지정하면 그 커밋 수 만큼 나온다. 나는 최신 커밋부터 4개 커밋을 지정했다.

 

 

 

 

2. pick 을 reword 로 변경하고 저장하기

1번의 명령어를 사용하면 원하는 커밋 기록이 나온다. 이 때 커밋 앞에 pick이라고 적혀 있는데, 이를 reword로 변경한다.

키보드에서 i를 누르면 편집이 가능한데, i를 누른 뒤에 수정을 원하는 커밋을 바꾸면 된다.

reword는 내용을 그대로 둔 뒤 커밋 메시지만을 수정하는 명령어이다.

 

맨 앞을 모두 reword로 수정한 뒤 마찬가지로 esc를 누르고 :wq 를 입력하고 enter하여 내용을 저장한다.

이렇게 되면 commit message를 수정할 수 있게 된다.

 

아래 캡처 사진이 reword로 바꾼 부분이다.

나는 이슈 번호를 변경하기 위해 4개의 commit을 reword로 바꾸었다.

 

 

 

 

 

3. commit message 수정하기

2번 과정에서 enter를 누르면 commit message가 하나씩 뜨면서 수정할 수 있게 된다.

이 캡처본처럼 commit message가 나오게 되며, 이 명령창안에서 자유롭게 commit을 편집할 수 있다.

 

맨 처음 i 를 눌러서 편집 모드로 바꾸고 편집을 한 뒤에,

esc를 누르고 :wq 를 입력한 뒤에 저장하면 자동으로 다음 커밋 메세지로 넘어간다.

 

나는 이러한 과정을 반복해 총 4개의 커밋을 수정했다.

 

 

 

 

4. 수정한 commit message 를 다시 push

git push --force

내가 직접 터미널에 입력한 캡처본이다. 이렇게 명령어를 입력하면 기존에 push된 내용이 수정한 내용을 덮어씌워진다.

이렇게 한 뒤에 repository를 확인해보면 commit message가 수정된 걸 확인할 수 있다.

 

force 명령어는 강제로 push해주는 명령어인데 github 공식 문서에는 최대한 사용하지 말아야 한다고 한다.

그렇지만 이런 경우에는...ㅎ 어쩔수 없다고 생각해야지. 그래도 커밋할 때 한 번, push 전에 한번씩 체크해야겠다.

 

 

위의 명령어가 제대로 작동하지 않으면 아래 명령어를 이용하면 된다.

git push origin [branch] -f

 

 

 

 

 

 

 

 

 

 


pull request를 준비하면서 다시 issue 번호를 보는데 달라서 순간 너무 멘붕이 왔었다.

commit 되돌리는 건 생각도 못햇는데 시윤님이 알려주셔서 구글링해서 제대로 변경한 뒤에 제대로 바꿀 수 있었다.

정말 다행이지만...이전에 두번세번 확인하는 버릇을 계속 들여야겠다.

 

커밋 메세지 수정하는 건 깃허브 공식 문서에도 잘 나와있다.

https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message

 

Changing a commit message - GitHub Docs

Rewriting the most recent commit message You can change the most recent commit message using the git commit --amend command. In Git, the text of the commit message is part of the commit. Changing the commit message will change the commit ID--i.e., the SHA1

docs.github.com