You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让prepare-commit-msg Git钩子忽略合并提交?

修改后的Git Prepare-Commit-Msg钩子脚本

没问题,我帮你调整了这个prepare-commit-msg钩子,让它自动跳过Git生成的合并提交消息,避免重复添加分支ID:

#!/bin/sh
BRANCH=`git branch | grep '^*' | sed -e 's/^* //'`
MESSAGE=`cat "$1"`
JIRA_ID=$(echo "$BRANCH" | grep -Eo "[A-Z0-9]{1,10}-?[A-Z0-9]+-\d+")

# 检查是否是自动生成的合并提交消息
if echo "$MESSAGE" | grep -q "^Merge branch"; then
    echo "$MESSAGE" > "$1"
elif [ -z "$JIRA_ID" ]; then
    echo "$MESSAGE" > "$1"
else
    echo "[$JIRA_ID] $MESSAGE" > "$1"
fi

关键改动说明

  • 新增了一行判断逻辑:用grep -q "^Merge branch"检查提交消息是否以Merge branch开头(Git自动生成的合并消息通常都是这个格式)
  • 如果是合并消息,直接保留原内容不做修改;如果不是合并消息且能提取到JIRA ID,才会把ID加到提交消息开头;如果没有提取到JIRA ID,同样保留原消息不变

这样就能完美避免合并提交里出现重复分支ID的问题啦~

内容的提问来源于stack exchange,提问作者Sergey Emeliyanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:42:39