【问题标题】:Enforce commit message format in git在 git 中强制提交消息格式
【发布时间】:2016-10-09 03:26:27
【问题描述】:

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

这可以在存储库级别设置,以便创建分支的每个人都可以执行此操作吗?

【问题讨论】:

标签: git pre-commit-hook


【解决方案1】:

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

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

*免责声明:我是 @Datree 的联合创始人和产品负责人,但作为一名积极的开源贡献者,我深谙此道。 我也写了一篇关于这个问题的博文——How to Get More Out of Your Git Commit Message

【讨论】:

    【解决方案2】:

    如 Git ProBook "Customizing Git - An Example Git-Enforced Policy" 中所述,这种强制执行将通过 hook 设置,更具体地说,是像 @987654323 这样的 服务器端 挂钩@一:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 2021-09-11
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多