본문으로 건너뛰기

Git 커밋 메시지 수정하기

··2 분
장태근
작성자
장태근
개발자. 명료한 생각이 명료한 글이 된다.

커밋 메시지는 의도를 전달한다. 하지만 가끔 메시지 작성을 실수한다. 심지어 잘못 작성한 커밋 메시지를 뒤늦게 발견했다. 어떻게 수정할 수 있을까?

  1. 방금 작성한 커밋
  2. 과거 커밋

이전 커밋은 크게 방금 작성한 커밋과, 과거 커밋으로 나뉜다.

1. 방금 작성한 커밋 수정하기
#

git commit --amend 

방금 작성한 커밋을 수정하기 위해서는 다음과 같이 작성한다.amend(수정)을 사용해서 쉽게 덮어쓴다.

--force-with-lease: 원격저장소에 푸시한 커밋은 똑같이 수정하고 ‘강제 푸시’ 해야 한다.

2. 과거 커밋 수정하기
#

git log 

먼저 수정하고 싶은 커밋을 확인하자.

방금 만든 커밋 수정하기에 비해 골치 아프다. 하지만 금방 익숙해질 수 있다.

2.1 여러 커밋
#

git rebase -i HEAD~n 
  1. 마지막 커밋 n개를 표시한다.
  2. pickreword로 수정한다.
  3. 수정한 커밋 메시지를 작성하고 종료한다.

2.2 조금 더 오래된 커밋
#

과거 커밋 수정하기 시나리오 <출처: 장태근블로그>

git log 명령을 실행해서 커밋내역을 확인한다. 예를 들어 수정하고 싶은 커밋이 0eb0d7로 시작하는 커밋일 때 HEAD를 바로 직전커밋인 230339로 이동해야 한다.

git rebase -i 230339 #<직전커밋> 

수정하고 싶은 커밋에 직전커밋 로그로 이동하고 pick으로 표시되는 해쉬값을 edit으로 수정한다. 에디터로 작업을 마치면 해결하고 싶던 파일을 작성하고 추가하면 된다.

과거 커밋 수정하기 완료 <출처: 장태근블로그>

개발도구로 파일을 추가한 후 커밋 메시지를 수정했다.

2.3 정리하기
#

여러 커밋을 수정하는 두 가지 방법을 알아봤다. 비교적 최근 커밋을 수정한다면 첫 번째(git rebase -i HEAD~n) 방법이 편리하다. 반면 조금 더 오래된 커밋을 수정해야 한다면 내역을 확인하고 직전 커밋으로 확인하는 두 번째 방법이 유용하다.

마치며
#

흔히 마주하는 두 가지 상황을 알아봤다. 커밋을 최소한의 단위로 잘 나눠야 된다고 한번 더 느꼈다. 분기를 잘 나눠야 충돌과 같은 다른 문제가 발생했을 때도 쉽게 해결할 수 있다. 더불어 명료한, 좋은 커밋 메시지를 작성하는 방법도 관심이 생겼다.

협업을 진행 중이라면 한번 더 확인하자.

참고 자료
#