【问题标题】:Add compulsory commit message format in GIT在 GIT 中添加强制提交消息格式
【发布时间】:2021-09-24 02:09:18
【问题描述】:

我想在 GIT 中进行配置,强制所有提交消息遵循特定模式。 我该怎么做?

编辑:我想要它用于 Github。

【问题讨论】:

  • 简短回答:覆盖(或创建).git/hooks 中的脚本之一并使其可执行。查看更多信息:githooks.com
  • @lucascavalcante 这将只强制我为我的所有分支提供正确的提交消息。我想在全球范围内设置一些限制所有人的东西。

标签: git github git-commit


【解决方案1】:

最好的方法是设置一个 CI 作业来检查提交消息并验证它们是否采用您想要的格式。在某些环境中,也可以使用 pre-receive 钩子,尽管这在 github.com 上是不可能的(但它在 GitHub Enterprise Server 上)。

该命令将如下所示:

#!/bin/sh

git rev-list $1 | \
  xargs -L1 sh -c 'git log --format=%B -1 $0 | grep -qs Signed-off-by'

在我的例子中,我向命令传递了分支上的一系列提交(即以BASE..HEAD 的形式),并且我的检查是验证每个提交是否包含文本Signed-off-by。您可以将grep 命令替换为您喜欢的任何命令,前提是如果提交消息可接受则退出 0,否则退出非零。然后,脚本本身将在成功时退出 0,如果提交不可接受,则退出非零,然后您可以拒绝提交。

您可能希望通过提供commit-msg 挂钩以及使用类似技术来帮助开发人员。然而,正如outlined in the Git FAQ 一样,强制性的客户端钩子都是无效的,因为它们可以在没有任何人注意到的情况下被开发人员轻松绕过,并且也会让一些高级开发人员感到恼火,所以你应该让他们选择加入那些想要它们的人.

【讨论】:

    猜你喜欢
    • 2016-10-09
    • 2021-09-11
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多