57

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

  1. git 提交
  2. 混帐藏匿
  3. git pull --rebase
  4. git stash 弹出

这造成了一堆冲突并且出了点问题。现在做 'git stash list' 表明我的藏匿处仍然存在。是否可以在执行 git commit 之后将我的 repo 恢复到原点。如此有效地,我的回购只包含我所做的更改,而服务器没有任何新内容?

4

4 回答 4

145

实际上,为了使这更容易,Git 保留了一个名为的引用,该引用ORIG_HEAD指向你在变基之前所在的位置。所以,这很简单:

git reset --hard ORIG_HEAD
于 2010-02-08T14:06:26.373 回答
49

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

使用

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

您在该精确位置创建一个新分支并检查它

于 2010-02-06T13:43:12.540 回答
6

你应该检查命令

git reset --merge

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

该命令返回一个工作区,其中包含对冲突拉取之前状态的未提交更改。

于 2012-01-11T09:43:26.767 回答
0

使用git log -g并找到您要返回的提交索引,即执行git checkout 索引

于 2010-02-06T13:34:34.740 回答