본문 바로가기
개발/Git

[Git] 커밋 메시지 변경 - git commit --amend, git rebase, vi 모드

by 윤호 2021. 8. 9.

커밋 메시지를 변경하는 등 git log를 수정할 때는 vi 편집기를 이용하는데, 이에 익숙하지 않아 삽질했던 경험을 작성합니다.

 

가장 최근 커밋 메시지 수정

git commit --amend -m "changed commit"

최근 커밋 메시지는 -m 으로 vi 편집기를 거치지 않고 바로 수정이 가능합니다.

 

이번엔 vi 편집기를 사용하는 방법을 보겠습니다

git commit --amend

해당 명령어를 입력하면 터미널이 vi 편집 화면으로 바뀝니다.

커서는 깜빡거리지만 입력이 되지 않습니다.

키보드에서 i를 눌러 편집모드(INSERT)로 변경할 수 있습니다. 이 모드에서 글자 수정이 가능합니다.

 

첫 줄에 있는 커밋 메시지를 수정하고 esc -> :wq 를 입력하여 vi를 종료할 수 있습니다. (:wq 에서 세미콜론도 눌러야합니다)

저장하지 않고 종료는 :q 입니다.

 

git log 입력하면 커밋 메시지가 수정된 것을 볼 수 있습니다.

 

특정 커밋 메시지 수정

git rebase 를 이용하여 특정 커밋을 수정할 수 있습니다. 2번 커밋을 수정해보겠습니다.

git rebase -i HEAD~3

위의 명령어를 입력해 최근 3개의 커밋을 rebase합니다.

그 중 두번째 커밋을 수정하기 위해 두번째 커밋에서 pick을 reword로 수정하고 :wq 를 입력하여 저장 종료 합니다.

(가장 최근 커밋이 밑에 위치합니다)

저장 종료하면 바로 해당 커밋 메시지의 편집창이 뜹니다.

커밋 메시지를 수정후 마찬가지로 :wq로 저장종료합니다.

git log를 보면 수정된 것을 확인할 수 있습니다.

 


오류에 관한 내용입니다.

vi 에 익숙지 않은 상태에서 이것저것 만지다보니 오류가 많이 났습니다.

가장 컸던건 위와 같은 Found a swap file by the name "~" 경고였습니다.

 

이는 당황하지말고 엔터를 계속 친후 입력창이 나오면 Q로 vi를 나온 후 명령창에서 rm -f "~.swp"으로 스왑 파일을 제거해주면 됩니다.

 

댓글