Git

Git에서 커밋된 메시지를 수정하는 방법

코샵 2023. 8. 12. 16:17
반응형

Git의 복잡성에 대한 오늘의 논의에서는 커밋 후 커밋 메시지 수정의 영역에 대해 알아봅니다. 이 작업은 특정 상황에서 필수적이지만 정확성과 그 의미에 대한 깊은 이해를 요구합니다. 

 

커밋 메시지를 수정하는 이유는 무엇입니까?

시작하기 전에 커밋 메시지를 수정해야 하는 이유를 이해하는 것이 중요합니다.

  1. 오타: 우리 모두가 만듭니다. 때때로 그들은 커밋 메시지에 몰래 들어갑니다.
  2. 명확성: 검토 시 메시지가 충분히 명확하지 않다고 느낄 수 있습니다.
  3. 추가 정보: 문제 번호를 참조하거나 필요한 컨텍스트를 제공하는 것을 잊었을 수 있습니다.

주의 사항: 커밋을 이미 퍼블릭/공유 브랜치로 푸시한 경우 커밋을 수정하면 브랜치에서 가져온 다른 사람에게 문제가 발생할 수 있습니다. 절대적으로 필요한 경우가 아니면 이러한 커밋을 수정하지 않는 것이 가장 좋습니다.

1. 가장 최근 커밋 수정

가장 최근 커밋만 수정하려는 경우 매우 간단합니다.

git commit --amend // Vi 편집기 이용
git commit --amend -m "commit_message" // 터미널에서 사용

이 명령은 기본 텍스트 편집기를 열어 최신 커밋의 메시지를 수정할 수 있도록 합니다. 변경을 완료하면 편집기를 저장하고 닫습니다.

2. 이전 커밋 수정

이전 커밋의 경우 대화형 rebase 명령을 사용해야 합니다.

git rebase -i HEAD~n

//vi에서 INSERT 모드로 전환할 때는 i를 사용하며 COMMAND 모드로 전환할 때는 ESC 키를 사용합니다.

여기서 'n'은 되돌리려는 커밋 수입니다. 예를 들어 커밋이 3개 오래된 커밋을 수정하려면 'n'을 3으로 바꾸면 됩니다.

이 명령은 또한 텍스트 편집기를 열어 마지막 'n' 커밋 목록을 표시합니다. 수정하려는 커밋을 찾아 pickedit 또는 e로 바꾼 다음 저장하고 편집기를 종료합니다.

이제 Git은 해당 커밋에서 일시 중지하여 다음을 수행할 수 있습니다.

  • 커밋 메시지를 수정하려면 git commit --amend를 사용하십시오.
  • 편집기를 저장하고 종료합니다.
  • 리베이스 프로세스를 완료하려면 git rebase --continue를 진행하십시오.

3. 수정된 커밋 푸시

이전에 원래 커밋을 원격으로 이미 푸시한 경우 수정한 후에 푸시를 강제로 덮어써야 합니다.

git push origin branch-name --force-with-lease

참고: --force-with-lease는 실수로 다른 사람의 작업을 덮어쓰지 않도록 보장하므로 --force보다 안전한 옵션입니다.

최종 주의 사항

  • 공용 히스토리 재작성 방지: 다른 개발자가 수정하려는 커밋을 기반으로 작업한 경우 히스토리를 조정하는 데 어려움을 겪을 수 있습니다. 강제로 누르기 전에 모든 사람이 같은 페이지에 있는지 확인하십시오.
  • 백업: 리베이스하기 전에 필요한 경우 원래 변경 사항으로 돌아갈 수 있도록 백업 분기를 만드는 것이 좋습니다.

큰 힘에는 큰 책임이 따른다는 것을 기억하십시오. 커밋 메시지를 수정하는 기능은 강력하지만 신중하게 사용해야 합니다. 항상 명확성과 팀워크, 행복한 코딩을 우선시하세요! 🚀🔧📝