2012-06-06 108 views
5

我只是跑撤销git pull --rebase?

git pull --rebase 

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

感谢

回答

7

一个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的讨论,请参阅this question以及用于引用同一事物的替代语法。

2

使用git reflog

你会看到提交HEAD的一大堆是从过去。

最安全的是结帐你在一个新的分支需要的头部和从那里继续

git checkout -b phew [email protected]{x} # fill in the number of the commit you need. 
1

恢复从borked /笨/垂死的底垫

意外,我跑git pull origin master --rebase,而不是git pull origin develop --rebase

我只是想恢复rebase之后发生的事情并返回上次提交。我没有推到远程分支。

这是一个很大的错误,并希望摆脱合并。

退出合并的最快途径是git rebase --abort