개발관련/Git

이미 원격 브랜치에 푸시 된 병합 커밋을 되돌리는 방법

Rateye 2021. 9. 3. 10:34
728x90
반응형
질문 : 이미 원격 브랜치에 푸시 된 병합 커밋을 되 돌리는 방법은 무엇입니까?

git revert <commit_hash> 단독으로는 작동하지 않습니다. -m 을 지정해야하는데 이에 대해 꽤 혼란 스럽습니다.

누구도 전에 이것을 경험 했습니까?

답변

-m 옵션은 상위 번호를 지정합니다. 이는 병합 커밋에 둘 이상의 부모가 있고 Git은 어떤 부모가 메인 라인인지, 어떤 부모가 병합을 해제하려는 브랜치인지 자동으로 알지 못하기 때문입니다.

git log 의 출력에서 병합 커밋을 볼 때 Merge 시작하는 줄에 부모가 나열되는 것을 볼 수 있습니다.

commit 8f937c683929b08379097828c8a04350b9b8e183
Merge: 8989ee0 7c6b236
Author: Ben James <ben@example.com>
Date:   Wed Aug 17 22:49:41 2011 +0100

Merge branch 'gh-pages'

Conflicts:
    README
    

이 상황에서, git revert 8f937c6 -m 1 가 있다는 당신에게 나무를 얻을 것이다 8989ee0 하고, git revert -m 2 가 있다는 트리를 복원합니다 7c6b236 .

상위 ID를 더 잘 이해하기 위해 다음을 실행할 수 있습니다.

git log 8989ee0 
    

git log 7c6b236
    
출처 : https://stackoverflow.com/questions/7099833/how-to-revert-a-merge-commit-thats-already-pushed-to-remote-branch
728x90
반응형