我的目的是pipe理可能分布在多个外包机构之间的项目,并且我们希望在可能的情况下通过查看“用户名:[email protected]”的提交元数据来避免彼此之间的相互了解,纯粹为了避免任何潜在的政治问题。
一种方法是强制他们提交一个符合模式的电子邮件地址,即“@ mycompany.com”,或者我们可以重写电子邮件地址以确认该模式?
或者,我们可以维护2个存储库,我或同事将负责定期在2之间迁移提交,剥离提交者元数据。
我们目前使用GitLab来pipe理我们的仓库,但我可以想象这样的function可以在预提交钩子中处理?
您可以使用pre-commit
钩子来“警告”用户他们提交了错误的细节,但是不能保证它会被运行 – 在新的克隆上,默认情况下钩子没有被启用(所以人们必须设置他们自己),你可以传递--no-verify
git commit
来阻止pre-commit
钩子的运行。 提供和推荐是一件很好的事情,这样人们可以尽早得到提醒,表明他们的提交是不好的,但不能用来强制执行一个要求。
为了防止用户“发布”他们的无效更改,您需要在中央(“集成”)回购中使用update
挂钩,它会检查所有推送的提交,如果任何提交validation失败,则拒绝整个推送。 您还需要提供有关如何使用git filter-branch
修复无效提交的文档(可能在推送拒绝消息本身中)。