我跑了
git pull --rebase
并忘记指定“origin”。看起来git从所有不同的分支中拉出来。有没有办法从这里恢复我的回购撤消拉?
由于
答案 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有关HEAD
和ORIG_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