![Git 存储库强制执行提交者元数据](https://linux22.com/image/638632/Git%20%E5%AD%98%E5%82%A8%E5%BA%93%E5%BC%BA%E5%88%B6%E6%89%A7%E8%A1%8C%E6%8F%90%E4%BA%A4%E8%80%85%E5%85%83%E6%95%B0%E6%8D%AE.png)
目的是我管理可能分布在多个外包机构之间的项目,如果可能的话,我们希望通过查看“用户名:[电子邮件保护]“纯粹是为了避免任何潜在的政治问题。
一种方法是强制他们使用符合某种模式的电子邮件地址,例如“@mycompany.com”,或者我们可以重写电子邮件地址以确认该模式吗?
或者,我们可以维护 2 个存储库,我或同事将负责定期在两个存储库之间迁移提交,并删除提交者元数据。
我们目前正在使用 GitLab 来管理我们的存储库,尽管我可以想象这样的功能可以在预提交挂钩中处理?
答案1
你可以使用pre-commit
钩子来“警告”用户他们提交了错误的详细信息,但没有保证它将运行——默认情况下,新克隆上的钩子未启用(因此人们必须自行设置),您可以传递--no-verify
到git commit
以停止pre-commit
钩子运行。提供并推荐它是一件好事,这样人们就可以尽早收到警告,告知他们提交的内容是错误的,但它不能用于执行要求。
为了防止用户“发布”无效更改,您需要使用中央(“集成”)存储库中的钩子来检查所有正在推送的新提交,如果任何提交验证失败,则拒绝整个推送。您还需要提供有关如何使用来修复无效提交的update
文档(可能在推送拒绝消息本身中) 。git filter-branch