【发布时间】:2012-06-10 01:16:30
【问题描述】:
我刚刚跑了
git pull --rebase
忘记指定“原点”。看起来 git 从所有不同的分支中拉出来。有没有办法从这里恢复我的回购以撤消拉动?
谢谢
【问题讨论】:
标签: git
我刚刚跑了
git pull --rebase
忘记指定“原点”。看起来 git 从所有不同的分支中拉出来。有没有办法从这里恢复我的回购以撤消拉动?
谢谢
【问题讨论】:
标签: git
在git pull 操作之后,ORIG_HEAD 应该指向HEAD 的前一个值。您应该能够:
git reset --hard ORIG_HEAD
回到你在pull 操作之前开始的地方。你可以运行:
git show ORIG_HEAD
在运行reset 命令之前准确查看ORIG_HEAD 指向的位置。
另一种解决方案是基于ORIG_HEAD 创建一个新分支:
git checkout -b newbranch ORIG_HEAD
验证事情是否符合您的预期,然后删除旧分支并重命名new branch。
另请参阅 this question,了解有关 HEAD 和 ORIG_HEAD 的讨论以及引用同一事物的替代语法。
【讨论】:
使用git reflog
你会看到一大堆来自过去的 HEAD 提交。
最安全的方法是在新分支中签出您需要的 HEAD 并从那里继续
git checkout -b phew HEAD@{x} # fill in the number of the commit you need.
【讨论】:
从一个无聊/愚蠢/垂死的变基中恢复
不小心我跑了git pull origin master --rebase 而不是git pull origin develop --rebase。
我只是想恢复变基后发生的事情并回到最后一次提交。我没有推送到远程分支。
这是一个很大的错误,想要退出合并。
退出合并的最快方法是git rebase --abort
【讨论】: