programing

Git: 커밋을 리버스 병합하는 방법?

jooyons 2023. 10. 27. 21:55
반응형

Git: 커밋을 리버스 병합하는 방법?

SVN을 사용하면 커밋을 역병합하는 것이 쉽지만, Git을 사용하면 어떻게 할 수 있습니까?

병합 커밋을 되돌리려면 다음을 사용해야 합니다.git revert -m <parent number>. 예를 들어, 숫자가 1인 부모를 사용하여 가장 최근의 병합 커밋을 되돌리려면 다음을 사용합니다.

git revert -m 1 HEAD

마지막 커밋 전에 병합 커밋을 되돌리려면 다음 작업을 수행합니다.

git revert -m 1 HEAD^

사용하다git show <merge commit SHA1>부모님을 보기 위해서 번호는 그들이 나타나는 순서입니다. 예를 들어.Merge: e4c54b3 4725ad2

git 병합 문서: http://schacon.github.com/git/git-merge.html

git merge discussion (confusing하지만 매우 상세) : http://schacon.github.com/git/howto/revert-a-faulty-merge.txt

과거 커밋의 변경 내용을 '실행하지 않는' 새 커밋을 만들려면 다음을 사용합니다.

$ git revert <commit-hash>

과거 임의 지점에서 커밋을 제거할 수도 있지만, 커밋을 이미 다른 저장소로 푸시한 경우(또는 다른 사용자가 사용자로부터 제거한 경우)에는 실제로 제거하지 않을 수 있습니다.

이전 커밋이 병합 커밋인 경우 이 명령을 실행할 수 있습니다.

$ git revert -m 1 <commit-hash>

merged를 사용하지 않는 분기를 다시 merge하는 적절한 방법은 schacon.github.io/git/howto/revert-a-faulty-merge.txt 을 참조하십시오.

내가 당신을 제대로 이해했다면, 당신은 당신이 하는 것에 대해 말하고 있는 것입니다.

svn merge -rn:n-1

이전의 약속을 뒤로하고, 이 경우에, 당신은 아마도

git revert
git reset --hard HEAD^ 

병합 변경사항을 되돌리려면 위의 명령을 사용합니다.

git revert -m 해시
-m은 본선을 의미합니다.
병합에는 두 부모가 있습니다.
분기 A를 분기 B에 병합하면 B는 상위 1이고 A는 상위 2입니다.
기본적으로 당신이 지정하는 것처럼, 나는 그 커밋을 되돌리고 싶습니다.hash, 부모 B에 따라 달라지는 것을 당신은 말합니다.
$ git revert -m 1hash.

네가 만약git log, 병합 커밋은 다음과 같이 표시됩니다.

commit <hash>
Merge: <parent 1> <parent 2>
Author: Author <author@email.com>
Date:   Mon Oct 24 21:54:00 2022 +0000
    comment message

로그에서 <부모 1> 및 <부모 2>가 무엇인지 확인하면 이 커밋을 되돌릴 부모/베이스를 알 수 있습니다.

커밋을 원하지 않거나 나중에 커밋하려는 경우(커밋 메시지는 여전히 사용자를 위해 준비되며 편집할 수도 있습니다):

git revert -n <commit>

언급URL : https://stackoverflow.com/questions/1809484/git-how-to-reverse-merge-a-commit

반응형