5

我刚跑

git pull --rebase

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

谢谢

4

3 回答 3

12

一次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

另请参阅此问题以讨论引用同一事物的HEADORIG_HEAD替代语法。

于 2012-06-06T01:46:15.420 回答
5

采用git reflog

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

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

git checkout -b phew HEAD@{x} # fill in the number of the commit you need.
于 2012-06-06T01:47:32.940 回答
2

从一个无聊/愚蠢/垂死的变基中恢复

不小心我跑了git pull origin master --rebase,而不是git pull origin develop --rebase.

我只是想恢复变基后发生的事情并回到最后一次提交。我没有推送到远程分支。

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

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

于 2016-03-16T07:45:06.830 回答