如何查看git repo的接收历史记录?

Mar*_*hée 16 git

我们有一个"中央"仓库,我们用它来部署到我们的开发服务器.我知道git log会告诉我提交和他们提交的日期/时间,但我想知道什么时候提交被推销/收到回购.有什么办法吗?

Chr*_*sen 22

Git的reflogs将记录您指定的数据(日期和新的提示提交).

如果您的中央存储库是裸的,那么它的reflog可能没有启用(创建裸存储库时默认情况下不会启用它们).像这样启用它们:

git config core.logAllRefUpdates true
Run Code Online (Sandbox Code Playgroud)

您还应该考虑查看与reflog相关的其他配置选项(请参阅git-config(1)并搜索"reflog"):gc.reflogexpire,gc.reflogexpireunreachable.

您可能还想启用receive.denyDeletes(因为删除其分支时删除了reflog).如果您只关心保留某些分支上的reflog,那么您可以使用receive或update hook实现自己的预分支"deny delete"(请参阅githooks(5)).

启用reflog后,您可以使用
git reflog show branch-name或查看其内容
git log -g branch-name(或者可以与其他git日志选项结合使用).

这仍然不会包含您可能想要的其他信息(例如谁在推动新提示*),但它可能有所帮助.
*问题是身份验证系统(SSH,SSH + gitolite,HTTP,HTTP + git-http-backend等)通常不会将此信息传递到记录新reflog条目的级别; 我记得有些组织(Gentoo?)正在探索一些有助于记录这些信息的内容(因为他们正在考虑迁移到Git),但我不记得这些细节.

  • 完善.除此之外,当运行`git log -g branch-name`时,它只给出自该更改以来的更改次数(所以最新的是0,前一个是1等),但运行`git log -g - date = local branch-name`将改为给出日期.谢谢! (3认同)