在GIT中添加强制提交消息格式

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

我想在 GIT 中进行配置,强制所有提交消息遵循特定模式。 我怎样才能做到这一点?

编辑:我想要 Github。

git github git-commit
2个回答
0
投票

执行此操作的最佳方法是设置一个 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
钩子以及使用类似的技术来帮助他们。然而,正如 Git FAQ 中所概述的那样,强制的客户端钩子都是无效的,因为开发人员可以在没有人注意到的情况下轻松绕过它们,并且也会让一些高级开发人员感到烦恼,因此您应该让他们选择加入那些想要它们的人。


0
投票

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