撤消git pull --rebase

嘿,我是git的新手,我需要撤消pull命令,有人可以帮忙吗? 所以我要做的是...

  1. git提交
  2. git stash
  3. 歌桥-Rebse
  4. git stash pop

这造成了一堆冲突,并且出错了。 现在,执行“ git stash list”显示我的stash仍然存在。 是否可以在执行git commit之后将我的存储库恢复到原来的状态。 因此,我的仓库实际上仅包含我所做的更改,而服务器中没有任何新内容吗?

Thomas asked 2020-07-26T16:17:32Z
4个解决方案
95 votes

实际上,为了简化操作,Git保留了一个名为ORIG_HEAD的引用,该引用指向您在重新设置基准之前的位置。 因此,它很简单:

git reset --hard ORIG_HEAD
Pat Notz answered 2020-07-26T16:18:19Z
45 votes

使用git reflog,您将看到过去指向的HEAD列表

使用

git checkout -b after-commit HEAD@{1} # or the commit you want to recover

您在该精确位置创建一个新分支并签出

knittl answered 2020-07-26T16:17:59Z
5 votes

您应该签出命令

git reset --merge

这消除了git commit的需要; 拉动之前git stash(虽然不知道变基)

该命令返回一个工作空间,该工作空间在发生冲突的拉动之前具有未提交的状态更改。

Erik Martino Hansen answered 2020-07-26T16:18:49Z
-1 votes

使用git log -g并找到要返回的提交索引,只需git checkout索引

Johan Dahlin answered 2020-07-26T16:19:10Z
translate from https://stackoverflow.com:/questions/2213235/undoing-a-git-pull-rebase