[Git] Github commit message 수정

Git 커밋 메세지 수정하기.

아래 내용은 이미 커밋을 push 하여 remote 에 올린 상황일때 해결 방법이다. 커밋메세지 수정을 추천하지 않지만, 그래도 해야 될 때를 위해 작성한다.

전에 리눅스를 다뤄봤다면 CLI(command-line interface) 환경에 익숙하겠지만, 처음이라면 다소 어려울 수 있으니 아래 이미지를 참고하자.
사용하는 명령어에 대한 설명은 아래와 같다

  • vi 파일명(또는 경로/파일명) : 텍스트편집기
  • wq : 현재 내용을 저장 후 편집기 종료
  • q! : 수정 내용을 저장하지 않고 편집기 강제 종료

커맨드 창에서 rebase 를 사용해 수정모드로 진입한다.

커맨드 창에서 rebase 를 사용해 수정모드로 진입한다.

GIT

1
git rebase HEAD~1 -i

위 내용은 바로직전 의 commit 을 수정 할 때의 예시이며, 만약 더 이전의 내용 수정을 원한다면 HEAD~2, HEAD~3 와 같이 HEAD~{몇번째 전의 commit인지} 입력하면 된다.


pick 을 reword 로 수정한다.

GIT

GIT

GIT

reword 는 내용을 그대로 둔 뒤 커밋메세지 만을 수정하는 명령어 이다. 따라서 편집모드에서 pickreword 로 수정 한 뒤, esc 를 눌러 편집을 종료하고 :wq 를 입력 후 엔터키를 눌러 수정 한 내용을 저장 및 vi를 종료 한다.

위 내용까지 진행하게 되면 아래와 같이 vi 를 이용한 에디터가 켜지고, commit message 를 수정 할 수 있게 된다.

GIT


commit message 수정

2번까지 완료 후 화면에서 커밋 메세지를 수정 변경 한 다음 esc 를 눌러 편집을 종료하고 :wq 를 입력 후 엔터키를 눌러 변경한 commit message 를 저장 및 vi를 종료 한다.

GIT


메세지 덮어씌우기

GIT

GIT

1
git push --force

git bash 에서 위 명령어를 입력하면 내가 원하던 커밋 메세지가 변경 된 걸 확인 가능하다.


force pushing 의 위험성

github 공식 문서에 따르면, force pushing 을 최대한 사용하지 않아야 한다고 한다. 이유는 push 된 커밋의 로그를 가지고 있던 다른 팀원들이 로그를 수동으로 수정해줘야 하기 때문 이다.


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.

Tags:

Updated:

Leave a comment