因此,我有一个有点不寻常的 git 存储库,因为多个人使用 处理同一个存储库sudo
。(长远目标是摆脱这种情况,但目前,我们只是在改进实践方面迈出了一小步。)
当然,这使得识别谁做出了每次提交变得困难,但我已经找到了使用环境变量(GIT_AUTHOR_NAME 等)的合理解决方案。
为了“强迫”我的同事使用这个,我想在提交之前运行的一个钩子中添加一些自动验证:
- 预先承诺
- 准备提交信息
- 提交信息
但是,我似乎无法在这些钩子中找到任何方法来查找这些信息。我当然可以尝试重新发明轮子并寻找环境变量等,但我非常希望不这样做。
那么,有人知道是否有办法向 git 询问它打算用于暂存提交的作者/提交者姓名和电子邮件吗?或者这些信息是否仅在预提交挂钩之后添加到提交中?
答案1
GIT_AUTHOR_NAME
环境变量实际上是将可选参数和配置传递给钩子的主要方式。因此,在这些钩子中只从环境中读取数据是没有问题的。
当git
使用其中一个环境变量进行调用时,它将使用它们来设置作者信息。如果没有,git
则会从 repo 或全局配置中读取并适当地设置环境变量在调用钩子之前。
答案2
对于提交者的详细信息,事实证明正确的方法是使用git var GIT_COMMITTER_IDENT
。
对于作者详细信息,@acran 的答案是正确的,因此将被接受。