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

bihw5rsg  于 12个月前  发布在  Git
关注(0)|答案(1)|浏览(159)

我想在GIT中进行配置,以强制所有提交消息遵循特定模式。我该如何做?
编辑:我想在Github上使用它。

ej83mcc0

ej83mcc01#

最好的方法是设置一个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中所概述的那样,强制客户端钩子都是无效的,因为它们可以在没有任何人注意的情况下被开发人员绕过,并且也会让一些高级开发人员感到厌烦,所以您应该让他们选择加入那些想要他们的人。

相关问题