强制使用git格式的提交消息



如何在Git中强制执行提交消息格式?

这是否可以在存储库级别设置,以便每个创建分支的人都可以强制执行?

如Git ProBook"自定义Git-Git强制策略示例"中所述,此类强制将通过钩子设置,更具体地说,通过类似update服务器端钩子设置:

所有服务器端工作都将进入hooks目录中的update文件。update钩子在每个被推送的分支上运行一次,并接受三个参数:

  • 被推送到的引用的名称
  • 该分支所在的旧修订版
  • 正在推进的新修订

这比客户端挂钩(如pre-commit挂钩)更可取,后者:

  • 必须由每个用户手动设置
  • 可以绕过

对于给定的回购,如果不遵守您的策略,服务器端钩子将通过拒绝git推送来强制执行您想要的任何规则。

这假设您可以控制用户推送到的远程回购托管服务器。

如果你不这样做,你就回到客户端预提交挂钩,它可以通过git模板设置,其模板目录可以在所有用户之间共享(从git 2.92016年6月开始)。

服务器端Git钩子是您的解决方案,但也有设置和维护钩子(通常还有服务器)的开销。

如果你正在寻找SaaS解决方案(用于服务器端Git挂钩),这正是Datree*可以为你做的。

*免责声明:我是Datree的联合创始人和产品负责人,但作为一名活跃的开源贡献者,我深知这种痛苦。我还写了一篇关于这个问题的博客文章-如何从你的Git提交消息中获得更多

最新更新