撤消git pull --rebase

时间:2010-02-06 13:28:55

标签: git git-rebase git-pull git-stash git-revert

嘿,我是git的新手,我需要撤消拉动,任何人都可以帮忙吗?!?所以我所做的就是......

  1. git commit
  2. git stash
  3. git pull --rebase
  4. git stash pop
  5. 这造成了一堆冲突并且有点不对劲。现在做“git stash list”显示我的藏匿处仍在那里。是否可以在执行git commit之后将我的repo恢复到这一点。因此,我的回购仅仅包含我所做的更改,而且只包含服务器中的新内容吗?

4 个答案:

答案 0 :(得分:87)

实际上,为了使这更容易,Git会保留一个名为ORIG_HEAD的引用,它指向你在rebase之前的位置。所以,它就像:

一样简单
git reset --hard ORIG_HEAD

答案 1 :(得分:44)

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

使用

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

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

答案 2 :(得分:5)

你应该检查命令

git reset --merge

这消除了对git提交的需要;拉扯之前的git stash(虽然不知道rebase)

该命令返回一个工作空间,该工作空间对冲突之前的状态进行了未提交的更改。

答案 3 :(得分:-1)

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