Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

후레임의 프로그래밍

푸시되지 않은 기존 커밋 메시지를 수정하는 방법은 무엇입니까? 본문

스택오버플로우(Stack Overflow)

푸시되지 않은 기존 커밋 메시지를 수정하는 방법은 무엇입니까?

후레임 2020. 10. 26. 00:36
질문

 

커밋 메시지에 잘못된 내용을 썼습니다.

메시지를 변경하려면 어떻게해야합니까? 커밋이 아직 푸시되지 않았습니다.



답변

최근 커밋 메시지 수정

git commit --amend

편집기를 열어 가장 최근 커밋의 커밋 메시지를 변경할 수 있습니다. 또한 다음을 사용하여 명령 줄에서 직접 커밋 메시지를 설정할 수 있습니다.

git commit --amend -m "New commit message"

… 그러나 이것은 여러 줄의 커밋 메시지 나 작은 수정을 입력하기 더 번거로울 수 있습니다.

이 작업을 수행하기 전에 작업 사본 변경 사항이 스테이징되지 않았는지 확인하십시오. 그렇지 않으면 변경 사항도 커밋됩니다. ( 무단계 변경 사항은 커밋되지 않습니다.)

이미 원격 브랜치에 푸시 한 커밋 메시지 변경

이미 커밋을 원격 브랜치에 푸시 한 경우-로컬에서 커밋을 수정 한 후 (위에 설명 된대로) 다음을 사용하여 강제로 커밋을 푸시해야합니다 :

git push <remote> <branch> --force
# Or
git push <remote> <branch> -f

경고 : 강제 푸시는 원격 분기를 로컬 분기의 상태로 덮어 씁니다. 로컬 브랜치에없는 커밋이 원격 브랜치에 있으면 해당 커밋을 잃게됩니다.

경고 : 다른 사람과 이미 공유 한 커밋을 수정하는 데주의하세요. 커밋을 수정하면 기본적으로 다른 다시 작성합니다. en.wikipedia.org/wiki/SHA-1 "rel ="noreferrer "> SHA ID. 다른 사람이 재 작성한 이전 커밋의 복사본을 가지고있는 경우 문제가됩니다. 이전 커밋의 복사본이있는 사람은 작업을 새로 다시 작성한 커밋과 동기화해야합니다. 때로는 어려울 수 있으므로 공유 커밋 기록을 다시 작성하려고 할 때 다른 사람과 조정하거나 공유 커밋을 다시 작성하지 마십시오. 모두.


대화 형 리베이스 수행

또 다른 옵션은 대화 형 리베이스를 사용하는 것입니다. 이렇게하면 최신 메시지가 아니더라도 업데이트하려는 메시지를 편집 할 수 있습니다.

Git 스쿼시를 수행하려면 다음 단계를 따르세요.

// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n

커밋을 스쿼시하면 메시지를 편집 할 e / r를 선택하세요.

Enter image description here

대화 형 리베이스에 대한 중요 참고 사항

git rebase -i HEAD ~ n을 사용할 때 n개의 커밋 이상 있을 수 있습니다. Git은 마지막 n개의 커밋에서 모든 커밋을 "수집"하고 해당 범위 사이에 병합이 있으면 모든 커밋도 표시되므로 결과는 n +가됩니다.

좋은 팁 :

두 개 이상의 브랜치에 대해 수행해야하고 콘텐츠를 수정할 때 충돌이 발생할 수있는 경우 git rerere를 사용하면 Git이 이러한 충돌을 자동으로 해결하도록합니다.


문서



출처 : http://stackoverflow.com/questions/179123