2010-08-31 106 views
2

我懷疑我執行了最後一次提交(B)的錯誤修正(B'),這導致我在上次提交(B)中的所有工作都沒有了。在git中查找所有未提交的提交?

A 
    | 
    B [master] 

amend to 
    A 
/| 
    B B' 
    [master] 

我想如果我沒有做任何git gc,我原來的「正確」提交(B)仍應該在存儲庫中。但是,因爲它不是被任何裁判直接/間接地提及,所以我找不到它。有沒有什麼辦法可以在git中列出這樣的「未提交」提交,以便我可以從該提交中檢索我的工作?

感謝

回答

3

是的,reflog是你在找什麼。每次分支HEAD更改時,reflog都會記錄分支的前一個值。

+2

如果你已經設法到達提交甚至不在reflog中的地方,那麼仍然有希望 - 這是'git fsck'的工作,它可以列出懸掛的對象! – Cascabel 2010-08-31 13:00:37