Git: 이전에 커밋된 메시지만 편집하세요.

Git: 이전에 커밋된 메시지만 편집하세요.

게으른 이유로 기본 메시지를 사용하여 여러 커밋을 푸시했는데 이제는 각 커밋에서 무엇이 변경되었는지 실제로 알 수 없기 때문에 번거로워지고 있습니다.

이전 커밋의 메시지만 편집하고 (가능한 경우) 커밋 트리를 보존하려면 어떻게 해야 합니까?

답변1

다양한 커밋에 대한 커밋 메시지를 편집하려면 다음을 실행합니다.

git rebase -i firstsha

firstsha편집하려는 첫 번째 커밋의 상위 커밋 식별자는 어디에 있습니까? (여기서 유효한 인용문을 사용할 수 있으므로 git rebase -i HEAD~4마지막 4개의 커밋이 표시됩니다.)

열리는 편집기에서 수정하려는 커밋의 모든 "선택" 항목을 "reword"로 변경한 다음 편집기를 닫으면 선택한 모든 커밋에 대한 커밋 메시지를 입력하라는 메시지가 표시됩니다.

이 점에 유의하시기 바랍니다~ 할 것이다커밋의 해시가 변경되므로 커밋 트리를 변경합니다. 새 트리를 강제로 푸시하거나 새 분기로 푸시해야 합니다. 병합을 리베이스할 때 주의하세요. -r( )를 사용 --rebase-merges하고 읽어야 합니다.git rebase맨페이지의 "병합 리베이스" 섹션.

마지막 커밋만 빠르게 편집하려면 다음을 실행하세요.

git commit --amend

(단, 이미 준비된 커밋이 있는지 확인하세요.)

답변2

당신이 찾고있는 것은git rebase.

이전 메시지만 변경하려면 git commit다음을 사용하세요.

git commit --amend

이전 커밋을 원하는 대로 변경하고 편집 내용을 저장합니다.

그러나 이전 커밋을 변경해야 하는 경우에는 rebase.

git rebase -i HEAD~N 

여기서 N은 반환하려는 커밋 수(예: 2, 12, 6 등)와 같습니다.

여기에서 커밋이 포함된 텍스트 편집기를 가져와야 합니다. 옵션을 에서 로 변경하여 pick메시지 를 변경합니다 reword.

변경하려는 모든 커밋을 식별하고 해당 옵션을 적절하게 변경한 후 편집기를 저장하고 닫습니다. 그런 다음 각 커밋 메시지를 변경합니다. 만족스러우면 다음을 실행할 수 있습니다.

git push --force

해시는 다르지만 필요한 사항을 변경했으므로 Git 기록을 유지해야 합니다. 확인해야 할 다른 링크는 다음과 같습니다.

7.6 Git 도구 - 기록 다시 쓰기
GitHub 도움말 - 커밋 메시지 변경
StackOverflow - 이전 커밋 메시지 변경에 대한 질문

관련 정보