2010-08-31 81 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