2011-03-21 141 views
21

完成功能分支後,在git rebase -i期間,我意外刪除了所有提交。我不完全確定,但我懷疑,我沒有壓扁提交,而是用提交消息替換了整個條目。還原交互式git rebase

http://shafiulazam.com/gitbook/4_interactive_rebasing.html說:

最後有用的東西交互式 重訂能做的就是降提交給你的。 如果不是選擇'pick', 'squash'或'編輯'爲提交 行,您只需刪除該行,它將從 歷史中刪除提交。

我的問題是:有沒有辦法恢復/取消這個?

回答

48

如果你剛纔做的底墊中,你可以嘗試爲mentioned here

git reset --hard ORIG_HEAD 

Jakub Narębskidetails

ORIG_HEADHEAD以前的狀態,由有可能是危險的行爲,命令集,很容易恢復它們。
現在用處不大了Git已經引用日誌:[email protected]{1}大致相當於ORIG_HEAD[email protected]{1}始終是HEAD最後一個值,ORIG_HEAD是危險的操作之前的最後HEAD值)。

如果已執行某些操作因爲底墊的reflog can still help

+1

謝謝VonC - 'git reflog'是關鍵。 – Zubin 2011-03-21 08:24:51

10

你可以做「git reflog」並找回舊的HEAD。