撤消git pull --rebase?

时间:2012-06-06 01:36:17

标签: git

我跑了

git pull --rebase

并忘记指定“origin”。看起来git从所有不同的分支中拉出来。有没有办法从这里恢复我的回购撤消拉?

由于

3 个答案:

答案 0 :(得分:8)

git pull操作后,ORIG_HEAD应指向HEAD的上一个值。你应该能够:

git reset --hard ORIG_HEAD

回到pull操作之前的起点。你可以运行:

git show ORIG_HEAD

在运行ORIG_HEAD命令之前,确切了解reset指向的位置。

另一种解决方案是根据ORIG_HEAD

创建一个新分支
git checkout -b newbranch ORIG_HEAD

验证事物是否符合预期,然后删除旧分支并重命名new branch

另请参阅this question有关HEADORIG_HEAD的讨论以及用于引用相同内容的替代语法。

答案 1 :(得分:3)

使用git reflog

你会看到一大堆来自过去的提交HEAD。

最安全的是在新分支中检查您需要的HEAD并从那里继续

git checkout -b phew HEAD@{x} # fill in the number of the commit you need.

答案 2 :(得分:1)

从僵尸/愚蠢/奄奄一息的反叛中恢复

我无意中跑了git pull origin master --rebase而不是git pull origin develop --rebase

我只想恢复rebase之后发生的事情,然后回到最后一次提交。我没有推到远程分支。

这是一个很大的错误,想要退出合并。

合并的最快方法是git rebase --abort