developer tip

원격 Git 저장소 롤백

optionbox 2020. 8. 4. 07:29
반응형

원격 Git 저장소 롤백


원격 Git 저장소가 있으며 마지막 n커밋을 콜드 망각으로 롤백해야합니다 .


git revert <commit>…모든 n 커밋에 사용할 수 있으며 기록을 변경하지 않고 평소대로 푸시 할 수 있습니다 .

또는로 "롤백"할 수 있습니다 git reset --hard HEAD~n. 공용 또는 공유 저장소를 사용하는 경우 원래 지점을 기반으로 다른 작업을 분기하고 중단 할 수 있습니다. 힘내는 그렇게하지 못하게하지만 git push -f업데이트를 강제하는 데 사용할 수 있습니다 .


elmarco는 정확합니다 ... 그의 제안은 공유 / 공공 리포지토리 (또는 적어도 공공 지사)에 가장 좋습니다. 공유되지 않았거나 다른 사람을 방해하려는 경우 특정 심판을 푸시 할 수도 있습니다.

git push origin old_master:master

또는 특정 커밋 SHA1 (약식으로 1e4f99e)이있는 경우 다음으로 이동하고 싶습니다.

git push origin 1e4f99e:master

다행히도 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 bare 저장소에서 마지막 커밋을 어떻게 커밋 해제 할 수 있습니까?

참고 URL : https://stackoverflow.com/questions/588414/rolling-back-a-remote-git-repository

반응형