如何让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
相关产品推荐
相关产品推荐

