[git] git pull을 취소하는 방법?

원격 원점에서 원치 않는 커밋으로 인해 git pull을 취소하고 싶지만 재설정 해야하는 개정판을 모르겠습니다.

git이 원격 원점을 당기기 전에 어떻게 상태로 돌아갈 수 있습니까?



답변

또는 다른 답변보다 더 명시 적으로 만들려면 :

git pull

으악?

git reset --keep HEAD@{1}

1.7.1 이전의 git 버전에는 없습니다 --keep. 그러한 버전을 사용하면 사용할 수 --hard있지만 로컬 변경 사항이 손실되므로 위험한 작업입니다.


해설자에게

ORIG_HEAD는 위험한 행동이있는 명령으로 쉽게 되돌릴 수 있도록 이전 HEAD 상태입니다. Git에 리플 로그가 있으므로 이제는 유용하지 않습니다 : HEAD @ {1}은 ORIG_HEAD와 거의 같습니다 (HEAD @ {1}은 항상 HEAD의 마지막 값이고 ORIG_HEAD는 위험한 작동 전 HEAD의 마지막 값입니다)


답변

git reflog showHEAD의 역사를 보여 주어야합니다. 이를 사용하여 이전의 위치를 ​​파악할 수 있습니다 pull. 그럼 당신은 그 커밋을 할 수 reset있습니다 HEAD.


답변

이것은 나를 위해 일했습니다.

git reset --hard ORIG_HEAD

병합을 취소하거나 가져 오십시오.

$ git pull                         (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard                 (2)
$ git pull . topic/branch          (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD       (4)

이 체크 아웃 : HEAD와 ORIG_HEAD을 힘내에 이상.


답변

<SHA#>당신이 가고 싶은 커밋을 찾으십시오 . github에서 또는 명령 줄
git log이나 입력하여 찾을 수 있습니다.git reflog showgit reset --hard <SHA#>


답변

에서 https://git-scm.com/docs/git-reset#Documentation/git-reset.txt-Undoamergeorpullinsideadirtyworkingtree

병합 작업을 취소하거나 더러운 작업 트리 내부로 가져 오기

$ git pull           (1)
Auto-merging nitfol
Merge made by recursive.
 nitfol               |   20 +++++----
 ...
$ git reset --merge ORIG_HEAD      (2)

작업 트리에서 로컬로 수정 한 경우에도 안전하게 말할 수 있습니다. git pull 다른 분기의 변경 사항이 해당 변경 사항과 겹치지 않는다는 것을 알면 있습니다.

병합 결과를 검사 한 후 다른 지점의 변경 사항이 만족스럽지 않을 수 있습니다. 실행 git reset --hard ORIG_HEAD
하면 원래 위치로 돌아갈 수 있지만 원하지 않는 로컬 변경 사항은 삭제됩니다. git reset --merge로컬 변경 사항을 유지합니다.

참조 https://stackoverflow.com/a/30345382/621690


답변