如何撤消git pull?

我想撤消我的git拉,因为在远程来源不需要的提交,但我不知道我必须重置到哪个版本。

我怎么才能回到这个状态,然后我把git拉到远程起点上呢?

或者比其他答案更明确:

 git pull 

哎呦?

 git reset --keep HEAD@{1} 

旧版1.7.1以上版本的git没有--keep 。 如果你使用这样的版本,你可以使用--hard – 但这是一个危险的操作,因为它失去了本地的变化。


给评论者

ORIG_HEAD是HEAD的先前状态,由具有可能危险行为的命令设置,以便于恢复它们。 Git有reflog的用处不大:HEAD @ {1}大致等于ORIG_HEAD(HEAD @ {1}总是HEAD的最后一个值,ORIG_HEAD是危险操作之前HEAD的最后一个值)

git reflog show应该显示你的HEAD的历史。 你可以使用它来找出你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) 

结帐: Git中的HEAD和ORIG_HEAD获取更多信息。

find你想要的提交的<SHA#> 。 你可以在github中find它,或者在命令行inputgit log或者git reflog show ,然后执行git reset --hard <SHA#>