git을 사용해 소스를 commit
하거나 push
할 때,
이미 commit
을 해버렸는데 메세지를 수정하고 싶은 경우가 종종 생겼다..
또 언젠가 금방 찾아볼 거 같아 한번 정리해두도록 하겠다.
아, 그리고 당연하지만 해당 소스를 commit
혹은 push
를 진행한 컴퓨터에서 가능하다..
아래 command
실행 후 수정 창이 뜨면 편집기로 수정 후 탭을 닫으면 된다.
(cmd에서 진행 시 esc
->:wq
->창 닫기
)
git commit --amend
아래 command
로 지금까지 기록을 확인할 수 있다.
git log
수정할 commit
을 확인 후, 다음과 같이 수정할 commit
을 선택한다.
$ git rebase -i HEAD~원하는개수
// 위에서 부터 두번째 커밋을 수정하고 싶으면
$ git rebase -i HEAD~2
아래와 같이 명령어를 입력하면,
다음과 같이 편집기에 pick
문구가 뜨며 내가 선택한 commit
리스트가 나온다.
여기서 내가 수정할 commit
을 pick
-> reword
로 바꿔준 후 메세지를 수정 -> 저장 -> 편집기일 경우 수정한 탭을 닫으면 반영된다.
이미 push
를 진행해버려 원격에 올라간 commit message
는 강제로 덮어쓰는 방법이다.
방법은 굉장히 간단하지만.. 협업할 때는 사용하지 않는 것이 권장사항이다.
만약 나 혼자 연습용 소스라면 상관 없겠지만, 협업을 하는 경우에 강제로 덮어써버리면 이전 commit log
를 가진 다른 팀원들이 수동으로 로그를 수정해야하기 때문이다
⚠️push 하기 전에는 다시 한번 체크하자!!!!⚠️
방법은 로컬에서 1번을 진행한 후, 아래 command
를 실행하면 된다.
git push --force [origin main(브랜치 이름)]
[git] 커밋 메세지 수정하기 (changing commit message)
Github Docs: changing a commit message