例如,一个人创建分支(或轻量级标记)并将分支推送到服务器。从本地.git
目录看,一些文件是由一个人更改的。那个人也是推动者。服务器知道是谁做的,因为它需要检查权限。服务器上的git是否与执行该操作的人一起获取此信息?
如果我能做到:
git log .git/refs/tags/tag
我可以找出是谁创建了这个标签。
如果有办法做到这一点,可以回答以下问题:
还是有另一种方法可以找出git repo元数据更改的作者吗?
答案 0 :(得分:0)
您可以在服务器存储库中编写一个post-receive
hook,它会记录哪些refs已更新,以及如何更新,以及由谁执行此操作。
对于谁 - 这有点棘手,因为它完全取决于哪个软件实际进行了身份验证和授权(最后称为服务器端Git进程)。例如,使用gitolite
hooks,GL_USER
环境变量中似乎可以使用实际经过身份验证的用户名。 HTTP
服务器应导出REMOTE_USER
环境变量等。