2010-04-22 46 views
51

廢話!大約一個星期前,我試圖清理我的存儲庫時重新綁定了一些提交,顯然我沒有真正完成它。今天,接下來的一週和幾次提交,我從今天開始重新排序幾次提交,並且告訴我我已經處於轉換階段。中止舊的git rebase並失去了自rebase開始以來的提交

這應該是複製我的回購以防萬一。但我沒有......而是我跑了git rebase --abort這在當時聽起來是正確的。那是不對的。它從一週前中止了重新設定,並將主人的頭部重置爲舊的頭部。假!

我還有其他幾個分支機構,這些分支機構相當新,而且我已經多次推到遠程,但最近的更改似乎永遠消失了。我不具備適當級別的git-fu,以瞭解是否有任何方法可以恢復我的更改。

我擰了嗎?

編輯 - WOW!多謝你們! git reflog真棒!我完全康復了...吸取了教訓。標記Tchalvak的答案被接受爲第一個發佈。

回答

78

檢查git reflog。在幾乎所有情況下,您都可以使用這些提交散列作爲參考。

我也物理複製到其他地方的git倉庫目錄作爲一個地方做初步測試,看看有什麼會的工作,這樣你可以亂用任何你想要的,而不會丟失未跟蹤文件或把事情進入一種狀態,你不能從回來。

+10

'git reflog'只是讓我避免了工作時間的浪費。謝謝! – 2013-02-06 23:47:51

+4

我愛你這個答案。如果我可以調高十倍,我會。 – RobW 2013-03-03 22:45:49

+0

也救了我的。非常感謝! – liuyu 2014-03-30 19:03:26