2012-06-06 190 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