在git中实施提交消息格式

问题描述 投票:8回答:2

我怎样才能在git中强制执行提交消息格式。可以将其设置在存储库级别,以便创建分支的每个人都可以执行此操作。

git pre-commit-hook
2个回答
3
投票

正如Git ProBook“Customizing Git - An Example Git-Enforced Policy”中所描述的那样,这样的强制执行将通过一个钩子来设置,更具体地说,是像update那样的服务器端钩子:

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

  • 要推送的引用的名称
  • 该分支所在的旧版本
  • 推出了新的修订版

这比客户端钩子(如pre-commit)更受欢迎:

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

对于给定的存储库,服务器端挂钩将通过拒绝git push来强制执行您想要的任何规则(如果您的策略未得到遵守)。

这假设您可以控制用户正在推送的远程repo托管服务器。

如果不这样做,则返回客户端预提交挂钩,可以通过git模板whose template directory can be shared amongst all users (starting with git 2.9, June 2016)进行设置。


3
投票

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

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

*免责声明:我是@ Datree的联合创始人兼产品负责人,但作为一名活跃的开源贡献者,我非常精通这种痛苦。我还写了一篇关于这个问题的博客文章 - How to Get More Out of Your Git Commit Message

© www.soinside.com 2019 - 2024. All rights reserved.