有没有办法记录“.git”目录中的更改?

时间:2013-09-05 12:32:55

标签: git tags branch metadata git-branch

例如,一个人创建分支(或轻量级标记)并将分支推送到服务器。从本地.git目录看,一些文件是由一个人更改的。那个人也是推动者。服务器知道是谁做的,因为它需要检查权限。服务器上的git是否与执行该操作的人一起获取此信息?

如果我能做到:

git log .git/refs/tags/tag

我可以找出是谁创建了这个标签。

如果有办法做到这一点,可以回答以下问题:

  • 谁创建/删除了此分支
  • 谁创建/删除了此标记

还是有另一种方法可以找出git repo元数据更改的作者吗?

1 个答案:

答案 0 :(得分:0)

您可以在服务器存储库中编写一个post-receive hook,它会记录哪些refs已更新,以及如何更新,以及由谁执行此操作。

对于 - 这有点棘手,因为它完全取决于哪个软件实际进行了身份验证和授权(最后称为服务器端Git进程)。例如,使用gitolite hooksGL_USER环境变量中似乎可以使用实际经过身份验证的用户名。 HTTP服务器应导出REMOTE_USER环境变量等。