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
반응형
'개발관련 > Git' 카테고리의 다른 글
스테이징 영역의 파일에 git diff 표시 (0) | 2021.09.07 |
---|---|
git log 또는 git diff를 종료하는 방법 (0) | 2021.09.03 |
"git commit" 대신 "git commit --amend" 실행을 취소하는 방법 (0) | 2021.09.02 |
Git으로 커밋을 cherry-picking 하는 것의 의미 (0) | 2021.09.02 |
.gitignore를 Git 저장소에 커밋해야 하는가? (0) | 2021.09.01 |