假设我有一个这样的图

A---B---C---D (master)
     \
      \-E---F (HEAD)

如果我执行git log -all - online,我将得到所有6次提交。

但如果图像是

A---B---C---D (master, HEAD)
     \
      \-E---F

我不会看到E和f。我能得到git告诉我所有的提交,包括那些没有命名的分支吗?

谢谢


当前回答

救了我一命的是下面的命令:

git reflog

在这里你会发现一个历史提交完成的屏幕,就像这样:

在这一点上,你只需要找到你需要的HEAD@{X},创建一个临时分支,并像这样移动到它:

git checkout -b temp_branch HEAD@{X}

这样你就会有一个临时的分支来处理你丢失的提交,而不会重基或者破坏你的git存储库。

希望这对你有所帮助……

其他回答

通过查看reflog(位于.git/logs/HEAD),我已经幸运地恢复了提交

然后我不得不向下滚动到文件的末尾,我找到了刚刚丢失的提交。

git log有时候获取所有提交的细节并不好,所以要查看这个…

进入你的git项目,输入:

$ nano .git/logs/HEAD

查看你所有的提交,或者:

$ gedit .git/logs/HEAD

要查看所有的提交,

然后你可以在任何你喜欢的浏览器中编辑。

Try:

git log --reflog

它通过假装reflogs (git reflog)提到的所有对象在命令行上被列出为<commit>来列出所有git提交。

git log --reflog

救了我!我在合并头部时丢失了我的,找不到我的lates承诺!没有显示在源树中,但git日志——reflog显示我之前所有的本地提交

就像@Kieran的回答,但对于主机来说: Git log - online -all -graph - decoration $(Git reflog | awk '{print $1}')