답변:
git revert <commit>…모든 n 커밋에 대해 사용한 다음 평소와 같이 푸시하여 기록을 변경하지 않고 유지할 수 있습니다.
또는로 "롤백"할 수 있습니다 git reset --hard HEAD~n. 공개 또는 공유 저장소에서 푸시하는 경우 원래 브랜치를 기반으로 다른 작업을 분산시키고 중단시킬 수 있습니다. Git은 그렇게하는 것을 방지하지만 git push -f업데이트를 강제하는 데 사용할 수 있습니다 .
revert하면 기능 분기가 "이미"병합 된 것으로 처리 된다는 점을 명심 하십시오. 이는 이러한 분기 가 실제로 병합 되기 때문 입니다. 그러나 변경 사항은 되돌 렸습니다. 해결책 : 되돌리기 커밋을 선택 하거나 되돌 립니다.
reset --hard인해 기능 분기가 이미 병합 된 것으로 처리됩니까? 내 가정은 그렇지 않을 revert것입니다.
다행히도 저는 원하지 않는 커밋을 완전히 제거하는 Pat Notz의 솔루션 을 사용할 수있는 위치에 있었습니다. 그러나 처음에는 오류가 발생했습니다.
error: failed to push some refs to 'ssh://git@gitrepo.git'
To prevent you from losing history, non-fast-forward updates were rejected*
그러나 강제 ( -f) 옵션을 추가하면 이 오류를 덮어 씁니다.
git push -f origin 52e36b294e:master
원격 저장소에 직접 액세스 할 수있는 경우 항상 다음을 사용할 수 있습니다.
git reset --soft <sha1>
존재하지 않는 작업 디렉토리를 수정하려는 시도가 없기 때문에 작동합니다. 자세한 내용은 원래 답변을 참조하십시오.
git reset --hard [sha1]여기서 sha1은 커밋 해시 식별자입니다.