행궁동 데이터 엔지니어

반응형

git commit 메시지를 변경하는 방법입니다.

로컬에만 커밋한 경우

로컬에서 커밋 후 remote 저장소에 push한 경우를 다룹니다.

 

 

1. 로컬에만 commit한 경우 (remote 저장소에 push하지 않음)

git commit --amend

git commit 명령어의 --amend 옵션을 사용해 커밋 메시지를 수정할 수 있습니다(amend: 개정하다).

--amend 옵션으로는 가장 최근 commit 메시지 1개만 수정할 수 있습니다.

가장 최근 커밋 메시지가 아닌 이전 커밋 메시지를 수정하고 싶으신 경우 아래  "3. 이전 커밋 메시지를 수정하고 싶을 때"를 참고해 주세요

(git rebase -i HEAD~n 명령어)

git commit --amend 예시: i를 입력해 Insert 모드로 수정하고, :wq를 입력해 저장 및 종료(write, quit)합니다.

위와 같이 최상단에 commit message가 있는 commit 정보 페이지가 vi 편집기로 열립니다.

키보드 i를 눌러 vi 편집 모드로 들어가 메시지를 수정하고 esc를 한번 누른 후 :wq 를 입력해 저장 및 종료하면 커밋 메시지 수정이 완료됩니다.

 

 

2. 로컬에서 commit 했고 remote 저장소에 push까지 완료한 경우

commit 메시지 수정 방법은 위와 동일하고 원격 저장소에 --force 옵션을 사용해 강제로 push 해주어야 합니다.

git push --force 원격저장소이름 브랜치이름
# 예시
# git push --force origin main

GitHub 문서를 보면 --force 옵션을 사용하는 것을 권장하지는 않습니다. 

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

 

We strongly discourage force pushing, since this changes the history of your repository. If you force push, people who have already cloned your repository will have to manually fix their local history. For more information, see "Recovering from upstream rebase" in the Git manual.

commit 메시지 변경 전 Repository를 클론 했던 다른 유저들이 있다면 커밋 메시지를 수동으로 바꿔야 하는 불편함이 있다고 합니다.

(물론 다른 사용자가 Repository를 클론 하기 전에 빠르게 수정하면 상관없을 것 같긴 합니다)

원격 저장소에 push 하기 전에는 commit 메시지를 다시 한번 확인하는 것을 권장합니다.

 

 

3.  이전 커밋 메시지를 수정하고 싶을 때 (가장 최근 commit 메시지 1개 외에)

git rebase -i HEAD~n 명령어를 사용해 최근 n개 커밋 메시지까지 수정 가능합니다.

예를 들어 최근 3개 커밋 메시지를 수정하고 싶다면 아래와 같이 입력합니다.

git rebase -i HEAD~3

1번행 pick f6beed7 ...이 3회 전의 커밋 메시지이고 3번행 pic 189cee6이 가장 최근 커밋 메시지 입니다.

 

i를 입력해 vi 입력 모드로 전환 후 커밋 메시지를 수정합니다.

커밋 메시지 수정 완료 후에는 esc를 누르고 :wq를 입력해 저장 및 종료합니다.

원격저장소에 push한 경우에는 "2. 로컬에서 commit했고 remote 저장소에 push까지 완료한 경우"와 동일하게

git push --force 명령어로 원격저장소를 업데이트해줘야 합니다.

 

 

 

 

참고자료

1. mayinjanuary님 블로그, "[git] 커밋 메세지 수정하기 (changing commit message)", https://velog.io/@mayinjanuary/git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0-changing-commit-message
2. GitHub Docs, "Changing a commit message", https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message

 

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band