首页 > 解决方案 > 我想在拉取之前恢复到较早的提交,但该提交被列为 HEAD@{0}

问题描述

Git初学者在这里。我做了一个 git commit,然后尝试推送到 origin,但是收到一条关于远程的消息,其中包含我在本地没有的工作,所以我运行git pull并立即意识到我犯了一个错误,因为我的远程设置错误存储库。

所以我不得不撤消拉动。我想我可以git reset --keep HEAD@{1}恢复到我在尝试推送到原点之前所做的提交,但是当我运行时git reflog,它告诉我该提交以某种方式在我的 HEAD 中,而 HEAD@{1} 是从原点的拉动.

$ git reflog 
a98fsjs (HEAD -> master) HEAD@{0}: commit: This is what I was trying to push 
asd09jf (origin/master, origin/HEAD) HEAD@{1}: pull origin master: Fast-forward
asfasw9 HEAD@{2}: commit: Another previous commit

我知道我在拉动之前做出了提交,那么为什么在提交之前拉动呢?我能做些什么来撤消拉动吗?

标签: gitbitbucket

解决方案


好吧,这很尴尬……我为 pull commit 运行了“git show”,结果证明这是几个月前的一次 pull。当前拉动处于合并中间,尚未提交。我所要做的就是运行“git merge --abort”,然后运行“git reset HEAD@{0}”,然后撤消了拉取操作。


推荐阅读