[Git] Commit 메세지를 수정하는 2가지 방법 (로컬과 리모트)

손은실·2024년 8월 13일
0

Git & Github

목록 보기
2/6
post-thumbnail
post-custom-banner

커밋 메세지를 수정하는 2가지 방법을 알아보겠습니다.

  • 로컬 저장소의 커밋 메세지 (push 전)
  • 원격 저장소의 커밋 메세지 (push 후)


🏴 로컬: --amend

💡 스테이지에서 commit 하고, 아직 push 하지 않은 커밋 메세지를 수정하는 방법

git commit --amend
  • commit 명령어의 옵션
  • 가장 최근에 커밋한 메세지를 수정할 수 있습니다.

아래에서 실제 사용 모습을 보겠습니다.

실행 과정

git commit --amend 를 입력해, 최근 커밋의 편집 모드에서 수정 후 저장합니다.

편집된 커밋이 새로운 해시값을 할당 받았습니다.



🏁 원격: rebase

💡 로컬에서 push를 완료하고 원격 저장소에 올라간 커밋 메세지를 수정하는 방법

🚨 Git Rebase 공식 문서에서 말하길,
"로컬 브랜치에서 작업할 때는 히스토리를 정리하기 위해서 Rebase 할 수도 있지만, 리모트 등 어딘가에 Push로 내보낸 커밋에 대해서는 절대 Rebase 하지 말아야 한다."
"이 주의사항을 지키지 않으면 사람들에게 욕을 먹을 것이다."



이 글을 보시는 분들은 부디 큰 실수가 아니길 바랍니다.
저의 rebase 트러블슈팅 스토리는 [Git] 같은 commit이 중복 push됐을 때 reset으로 삭제하기에서 확인할 수 있습니다. 😂

git rebase HEAD~n -i : 부모 커밋을 기준으로 n 번째 커밋까지의 커밋 메세지
git rebase -i 커밋 해시 : 특정 커밋 1개


  • Git의 rebase 는 '재설정' 이라는 뜻으로, 수정, 병합, 재정렬 수행
  • -i: rebase 명령을 interactive 모드로 실행하며, 메세지를 수정하거나 삭제

실행 과정

이번에는 push 완료 후에 원격 저장소의 커밋 메세지를 변경해 보겠습니다.

1. 명령어 입력: 부모 커밋부터 수정할 커밋 메세지 편집 모드로 열기

만약 HEAD~3 을 입력해서 3개의 커밋을 열게되면 이렇게 push한 순서대로 출력됩니다.

  • pick : 선택된 커밋이라는 의미

2. pick → reword 변경 + 저장

pick을 reword로 변경 후 저장하면 바로 아래 이미지처럼 편집창이 열립니다.


3. 내용 수정 + 저장


4. 메세지 덮어씌우기

git push --force


5. 완료

"수정 완료"가 붙지 않은 수정되지 않은 커밋들의 커밋 시각을 보면 수정된 커밋과 함께 재 병합이 된 것을 볼 수 있습니다.

post-custom-banner

0개의 댓글