我们将 git 与 gitolite 一起使用,有时我的用户会更改名称
git config --global user.name
所以我想在日志中查看更多详细信息,以了解是否有人更改了名称设置但仍然是同一个工作站(ssh 密钥)。无论如何要这样做?
IMO,提交消息中的 ssh 键将完全是矫枉过正。您不希望您的提交消息在 x 天后查找完全搞砸,只是因为它们中的每一个都包含不同的 ssh 密钥。
您应该查看git notes以使用附加信息来补充您的提交。在注释中,您可以添加提交者的用户名和其他环境变量。
最坏的情况是,您可以在 git 注释中添加 ssh 密钥,但我不确定这如何阻止当前以其他用户名伪造提交的恶意用户试图破解并获取其他用户的 ssh 密钥。更重要的是,如果开发人员相互串通,那么 ssh 密钥将完全不够用。
假设您在 linux 上,您可以使用以下方式获取用户名
printenv | grep USER
您可以类似地从需要放入 git note 的环境中选择您需要的其他详细信息。
接下来,您可以编写一个 post-commit钩子,它会在每次提交后自动添加所有这些信息。
在 gitolite 3.x 中,您可以 IIRC 添加一个 VREF 约束,提交者(或作者)匹配所使用的 SSH 密钥或 HTTP auth 用户(我猜它使用用户名部分user.email
或全部user.email
)。
尽管不鼓励将其作为 pre-receive 钩子(即块),但您可以设置 post-receive 钩子来记录提交者并将其与 auth 用户名进行比较。