푸시 된 후 병합 되돌리기
내가 수행 한 단계 :
나는 branch1과 branch2 두 가지를 가지고 있습니다.
$git branch --Initial state
$branch1
$git checkout branch2
$git pull origin branch1 --Step1
나는 갈등을 해결하고
$git commit -m "Merge resolved"
그때
$git checkout branch1
$git merge branch2
$git push origin branch1
이제 1 단계에서 자동 병합으로 일부 코드가 제거되고 변경 코드가 푸시되었음을 깨달았습니다. 이제 변경 사항을 되돌리기 위해 초기 상태로 돌아가고 싶습니다. 즉각적인 도움을 찾고 있습니까?
공식 가이드에 따라 병합을 되돌릴 수 있지만 병합 된 커밋이 여전히 대상 브랜치에 있다는 잘못된 믿음을 Git에 남깁니다.
기본적으로 다음을 수행해야합니다.
git revert -m 1 (Commit id of the merge commit)
를 사용 git reflog <branch>
하여 병합 이전에 분기가 있었던 위치를 찾고 git reset --hard <commit number>
이전 개정을 복원하십시오.
Reflog는 분기의 이전 상태를 보여 주므로 원하는 변경 세트로 되돌릴 수 있습니다.
git reset을 사용할 때 올바른 분기에 있는지 확인하십시오.
원격 저장소 기록을 변경하려면을 수행 할 수 git push -f
있지만 누군가 사용자가 푸시 한 변경 사항을 이미 다운로드 할 수 있으므로 권장되지 않습니다.
첫 번째 옵션은 git revert
.
git revert -m 1 [sha-commit-before-merge]
는 git revert
변경 사항을 되돌리려하지만 역사를 유지합니다. 따라서 병합 된 분기와 기능 분기 간의 실제 차이를 더 이상 볼 수 없으므로 동일한 분기에서 계속 작업 할 수 없습니다. 다음 방법을 사용하여 기록도 제거하십시오. 현재 브랜치에 변경 사항을 적용하는 유일한 사람인 경우에만 매우 신중하게 수행하십시오.
git reset --hard [sha-commit-before-merge]
git push [origin] [branch] --force
참조 URL : https://stackoverflow.com/questions/12534312/revert-a-merge-after-being-pushed
'IT story' 카테고리의 다른 글
std :: string :: c_str () 및 임시 (0) | 2020.12.30 |
---|---|
SQL Server Management Studio에서 비활성화 된 오른쪽 클릭 스크립트 변경 테이블 (0) | 2020.12.30 |
각각의 하위 명령 세트가있는 Click 명령을 여러 파일로 분할하려면 어떻게해야합니까? (0) | 2020.12.30 |
불투명 한 응답에는 어떤 제한이 적용됩니까? (0) | 2020.12.30 |
Python에서 렉싱, 토큰 화 및 구문 분석을위한 리소스 (0) | 2020.12.30 |