Git:如何在git pull之前回到状态

时间:2014-01-21 04:43:51

标签: git version

我在master分支上,我正在做一些我不记得的事。

然后我做了git pull,我又提交了20多个提交。

现在我要撤消想要在git pull之前提交我的地方

2 个答案:

答案 0 :(得分:2)

git reset --hard HEAD@{1}

它应该是之前的HEAD

状态
  

ORIG_HEAD是HEAD的先前状态,由具有的命令设置   可能是危险的行为,很容易还原它们。它少了   现在有用,因为Git有reflog:HEAD @ {1}大致相当于   ORIG_HEAD(HEAD @ {1}始终是HEAD的最后一个值,ORIG_HEAD是最后一个   危险操作前HEAD的值。)

从这里开始:HEAD and ORIG_HEAD in Git

答案 1 :(得分:2)

运行git reflog将为您提供HEAD所指向的所有提交的列表(HEAD是指定您当前提交的内容,例如,如果您是在master然后HEAD将指向master上的最新提交。

看起来像这样:

e6832cb HEAD@{0}: pull: Fast-forward
e251737 HEAD@{1}: checkout: moving from my_branch to master 
bb14227 HEAD@{2}: commit: Here's a comment

如果您刚刚完成了git pull而没有其他任何内容,那么您在git pull之前提交的提交应该是HEAD@{1}左侧的提交

从那里你可以使用该提交哈希回到你想要的地方。