leehyogum의 트러블슈팅

[Git] 커밋 메세지 변경하기 본문

Git

[Git] 커밋 메세지 변경하기

leehyogum 2024. 11. 5. 21:08

프로젝트에서 커밋 컨벤션을 정하고 그에 따라 깃허브에 코드를 올리며 진행 중이었다.

새로운 기능 추가시 "Feat: 기능 설명" 으로 올리기로 하였는데, "Feature: 기능 설명"으로 올렸다.

이런 사소한 실수를 하다니.. 그냥 넘어가도 크게 문제는 없지만 이렇게 하나씩 어기다 보면 좋지 않은 습관이 들 것 같아 고치기로 하였다.

 

커밋 메세지를 변경하는 방법은 두 케이스에 따라 달라진다.

 

1. 커밋만 하고 푸시는 하지 않은 경우

1-1. 가장 최근 커밋 수정

git commit --amend

 

터미널에 해당 명령어를 입력하면 가장 최근의 커밋이 뜬다.

이 안의 커밋 메세지를 변경한 후 저장 (:wq)하면 된다.

그런데 나는 수정하려는 커밋이 가장 최근 커밋이 아니다.

 

1-2. 오래된 커밋 수정

git log

터미널에 해당 명령어를 치면 커밋 내역을 확인할 수 있다.

난 위에서 두 번째 커밋 메세지를 변경하고 싶으므로, 아래 명령어를 쳐서 가장 최근 커밋 2개를 보여주게 한다.

git rebase -i HEAD~2

 

 

메세지를 변경하고 싶은 커밋의 pick -> reword로 변경한 후 파일을 저장(wq)하고 닫는다.

그럼 다음과 같이 해당 커밋 메세지를 변경하는 창이 뜬다.

위 창에서 커밋 메세지를 변경하고 저장하고 닫는다.

 

git log를 입력해서 커밋을 확인하면 Feature -> Feat으로 변경되어 있음을 알 수 있다.

푸시를 하지 않았다면 이제 푸시하면 된다.

 

푸시를 이미 한 커밋의 메세지를 변경하는 경우 추가 단계를 따라야 한다.

 

2. 커밋을 이미 푸시 한 경우

커밋을 이미 푸시 한 상태라면, force를 통해 커밋을 강제 푸시해야 한다.

force는 정말 위험하기 때문에.. 앞으로는 푸시를 신중하게 하는 습관을 들여야겠다.

git push origin 브랜치명 --force

 

 

레포지토리에 변경 사항이 반영되었다.

 

 

커밋과 푸시는 신중하게 하자.!!!

'Git' 카테고리의 다른 글

[Git] 로컬 브랜치와 원격 브랜치의 차이점 확인하기  (1) 2024.11.03
[Git] pull과 fetch의 차이점  (3) 2024.10.10