git - 如何按时间顺序记录所有 Git 提交?

标签 git svn version-control branch

我想记录推送到 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/

相关文章:

svn - Git rebase 到稍后创建的分支

git - 在 Git 中 checkin 单个文件?

svn - 尝试在 Hudson 上设置 svn 密码时出错

jenkins - 未在 Sonar 仪表板中覆盖新代码

visual-studio-2008 - 从源代码管理中忽略 Web.Config,而不从 VS 2008 中的项目中排除

git - 如何摆脱 Git 中的 "refs/bisect/bad"分支

svn - git-svn 克隆错误 : error: there are still refs under 'refs/remotes/tags'

svn - 如何跳过 svnsync 同步中的初始修订(以修复损坏的存储库)

android - Eclipse Android 项目中的哪些文件夹需要在 SVN 中备份?

.net - 如何在不污染.csproj文件的情况下使用IIS Express