如何撤消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#>