Git 存储库强制执行提交者元数据

Git 存储库强制执行提交者元数据

目的是我管理可能分布在多个外包机构之间的项目,如果可能的话,我们希望通过查看“用户名:[电子邮件保护]“纯粹是为了避免任何潜在的政治问题。

一种方法是强制他们使用符合某种模式的电子邮件地址,例如“@mycompany.com”,或者我们可以重写电子邮件地址以确认该模式吗?

或者,我们可以维护 2 个存储库,我或同事将负责定期在两个存储库之间迁移提交,并删除提交者元数据。

我们目前正在使用 GitLab 来管理我们的存储库,尽管我可以想象这样的功能可以在预提交挂钩中处理?

答案1

你可以使用pre-commit钩子来“警告”用户他们提交了错误的详细信息,但没有保证它将运行——默认情况下,新克隆上的钩子未启用(因此人们必须自行设置),您可以传递--no-verifygit commit以停止pre-commit钩子运行。提供并推荐它是一件好事,这样人们就可以尽早收到警告,告知他们提交的内容是错误的,但它不能用于执行要求。

为了防止用户“发布”无效更改,您需要使用中央(“集成”)存储库中的钩子来检查所有正在推送的新提交,如果任何提交验证失败,则拒绝整个推送。您还需要提供有关如何使用来修复无效提交的update文档(可能在推送拒绝消息本身中) 。git filter-branch

相关内容