我想记录推送到 Git 存储库的所有提交。我对所有提交感兴趣,而不仅仅是我在本地 checkout 的分支。我还想查看已删除的分支中发生的提交。我所需要的只是一个类似于 svn log (在 Subversion 中)的命令。这可能吗?
最佳答案
我不确定你在要求什么,但我认为这在 git 世界中是不可能的。
我可以克隆您的存储库,并进行一些提交。但我没有义务与你分享它们。所以有些提交你永远不会知道。
类似地,如果我确实与您共享提交,我可能会在本地进行 10 次提交,但在将它们发送给您之前将它们压缩为 1 次提交。您将无法判断 10 个原始提交曾经存在过。
您可以创建一个本地分支,进行一些提交,然后删除该分支而不将它们 merge 回来,并且 git gc
很可能会永远销毁这些提交,因为它们不再可访问。
因此,有一些提交是您永远无法知道的,要么是因为有人创建了它们,但从未与您共享它们,要么是因为您创建了它们,但后来通过删除引用它们的唯一分支,使它们可用于垃圾回收。
如果您想查看您确实了解的所有提交,gitk --all
可能就是您要查找的内容。它将向您显示可从所有分支(本地或远程)访问的所有提交的图形 View 。同样,git log --all
将向您显示所有分支可访问的所有提交的文本摘要。
如果您专门寻找远程存储库上的悬空提交,我不知道如何执行此操作。 git fetch
默认情况下仅获取可从分支访问的提交;您可以指定 -t
来获取可从标签访问的内容;但我don't think you can fetch the remote reflog .
关于git - 如何按时间顺序记录所有 Git 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446633/