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

时间:2010-10-06 19:34:50

标签: git

我们有一个“中央”仓库,我们用它来部署到我们的开发服务器。我知道git log将向我显示提交和他们提交的日期/时间,但我希望看到提交被推送到/收到回购的时间。有什么办法吗?

1 个答案:

答案 0 :(得分:22)

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

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

git config core.logAllRefUpdates true

您还应该考虑查看与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 log 选项结合使用)。

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