Git: 기존 커밋 메시지 수정

실수는 흔합니다. 우리는 모두 실수를 합니다. 그래서 연필에 지우개를 씁니다. 이것은 Git과 같은 도구에서도 다르지 않습니다. 일부 변경 사항은 취소하기 어려울 수 있지만 일반적으로 방법이 있습니다.

그렇다면 기존 커밋 메시지를 수정하려면 어떻게 해야 할까요? 다행히 Git에서는 간단하지만 몇 가지 요인에 따라 방법이 약간 변경될 수 있습니다.

아직 원격으로 푸시되지 않은 마지막 커밋 수정

이것은 원격 저장소를 수정할 필요가 없기 때문에 가장 간단한 경우이며 자신의 저장소만 수정하면 됩니다. 이 경우 다음 명령을 사용할 수 있습니다.

$ git commit --amend

이 명령을 실행하면 수정할 수 있는 편집기가 열립니다. 지난 커밋 메시지. 완료하고 편집기를 저장/닫으면 커밋 메시지가 변경됩니다.

개인적으로 저는 명령줄에서 대부분의 작업을 수행하는 것을 선호합니다. 위 명령에 인수와 메시지를 추가하여 수행할 수 있습니다.

$ git commit --amend -m "Added a new file"

이렇게 하면 편집기가 열리지 않지만 대신 커밋 메시지가 즉시 수정됩니다.

원격으로 푸시된 마지막 커밋 수정

이것은 또 다른 일반적인 경우이며 수정하기가 조금 더 어렵습니다. 자체 저장소를 수정해야 할 뿐만 아니라 로컬 지점보다 더 앞서 있을 수 있는 원격 저장소도 수정해야 하기 때문입니다.

첫 번째 단계는 이전 섹션에서 했던 것처럼 마지막 커밋을 수정하는 것입니다.

$ git commit --amend -m "Added a new file"

그런 다음 이러한 변경 사항을 원격 저장소에 푸시해야 합니다. 그러나 이것은 다음을 사용하여 수행되어야 합니다. --force 깃발.

$ git push <remote> <branch> --force

원격 저장소를 우리 자신의 로컬 상태로 덮어쓰려면 이런 식으로 해야 합니다.

강제로 푸시하면 잃다 로컬 브랜치에 아직 없는 커밋이 로컬 브랜치에 있습니다. 조심해서 진행해라!

모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!

실수를 충분히 빨리 포착할 수 있다면 변경하는 데 문제가 없을 것입니다. 그렇지 않으면 변경하려는 커밋 메시지 이후에 변경된 사항이 손실되지 않도록 다른 솔루션을 찾아야 할 수도 있습니다.

대화형 Rebase 사용

설명된 이전 솔루션보다 더 유연한 또 다른 옵션은 대화형 리베이스를 사용하는 것입니다. 이렇게 하면 마지막 N 커밋을 검사하고 선택, 스쿼시 등을 포함하여 변경할 수 있습니다.

리베이스를 시작하려면 다음 명령을 사용할 수 있습니다.

$ git rebase -i HEAD~n

여기 n 검사하고 편집하려는 커밋 수입니다. 그러면 다음과 유사한 커밋 목록이 표시됩니다.

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















보시다시피 마지막 N개의 커밋이 모두 나열되어 있으며 필요에 따라 메시지를 수정할 수 있습니다.

타임 스탬프 :

더보기 스택카부스