如何强制“git commit -m”打开编辑器
问题描述:
我正在为团队实施git模板提交消息。 我已经 添加一行做了它通过.git/hooks/prepare-commit-msg
钩:如何强制“git commit -m”打开编辑器
cat ".gitmessage" >> "$1"
而且我已经配置了以下:
git config --local commit.template .gitmessage
那么,模板功能工作正常,但只当git commit被调用时 没有-m
标志。
不幸的是,所有的团队成员的工作流程是:
git add ...
git commit -m "Some message"
问:如何强制混帐总是打开编辑器编辑的消息,即使当git commit -m ...
命令调用 ?
答
您可以修改commit-msg
预挂钩来实现此目的。例如,您可以检查提交消息中的行数(请查看下面的示例);使用一些正则表达式来检查模板是否受到尊重;等
#!/bin/bash
# Check if the number of lines is greater than 3
commit_msg_file="${1}"
minimum_lines=3
num_lines=$(wc -l "${commit_msg_file}" | cut -f1 -d' ')
if (($num_lines < $minimum_lines)); then
echo >&2 "Error!"
exit 1
fi
使用'-m'的重点是你可以跳过打开编辑器并定义消息内联 –
我会禁止他们直接推入上游主机并请求他们创建请求。如果提交消息不符合质量标准,请拒绝拉取请求。 – hek2mgl
您可以将模板保存在某个文件“模板”中,然后运行“git commit -F template”以便从该文件获取提交信息。 (这是您的解决方案的替代方案,但-m本身意味着您要跳过编辑器) – love