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

Windows版Sourcetree如何配置自动在提交信息前添加Jira工单ID

Windows 版 Sourcetree 实现提交自动预填 Jira ID 方案

你之前配置的prepare-commit-msg钩子不生效,不是Sourcetree不支持钩子,是Windows环境下有几个容易踩的静默失败坑,按下面的步骤配置可以完全实现你要的效果:打开提交对话框时输入框自动预填当前分支对应的Jira ID,格式为HAD-4234: 。


钩子失效的常见原因

先排查你之前配置失败的问题,基本逃不过这三点:

  • Sourcetree默认使用自带的内嵌Git,你脚本开头写死的sh.exe路径和内嵌Git的路径不匹配,钩子直接无法启动,且没有报错提示
  • Windows下编辑的shell脚本默认用CRLF换行符,sh解释器解析shebang行时会把回车符当成路径的一部分,直接找不到解释器
  • 钩子文件带了.sh后缀,或者没有加可执行权限,Git会直接跳过不执行

分步配置指南

1. 统一Sourcetree调用的Git版本

打开Sourcetree,依次进入「工具」→「选项」→「Git」标签页,找到Git版本设置项,选择「系统Git」,选中你本机单独安装的Git程序路径(默认路径为C:\Program Files\Git\bin\git.exe),不要使用Sourcetree内嵌的Git版本,避免多环境路径不一致的问题。

2. 替换prepare-commit-msg钩子脚本

进入对应项目的.git/hooks目录,删除之前创建的无效钩子文件,新建一个无任何后缀名的文件,文件名必须为prepare-commit-msg,写入以下内容:

#!/bin/sh
# 从当前分支名提取Jira ID自动预填到提交信息开头
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)

# 跳过分离头指针、rebase场景,支持设置SKIP_PREPARE_COMMIT_MSG=1临时关闭钩子
if [ -z "$BRANCH_NAME" ] || [ "$BRANCH_NAME" = "HEAD" ] || [ "$SKIP_PREPARE_COMMIT_MSG" = "1" ]; then
  exit 0
fi

# 匹配Jira ID规则:2-5位大写字母+横杠+1-4位数字
JIRA_PATTERN='[A-Z]{2,5}-[0-9]{1,4}'
echo "$BRANCH_NAME" | grep -Eq "$JIRA_PATTERN"
if [ $? -ne 0 ]; then
  exit 0
fi
JIRA_ID=$(echo "$BRANCH_NAME" | grep -Eo "$JIRA_PATTERN" | head -1)

# 检查提交信息是否已包含当前Jira ID,避免重复添加
grep -Eq "^$JIRA_ID:" "$1"
if [ $? -eq 0 ]; then
  exit 0
fi

# 插入ID到提交信息第一行,格式为 JIRAID:
sed -i.bak "1s/^/$JIRA_ID: /" "$1"
# 删除Windows下sed生成的临时备份文件
rm -f "$1.bak"

3. 修复Windows环境专属的脚本问题

这两步漏了大概率还是不生效:

  • 保存脚本时,必须使用LF换行符,不能用Windows默认的CRLF。用VS Code等编辑器编辑时,点右下角的换行符标识切换为LF即可。
  • 打开Git Bash,进入项目的.git/hooks目录,执行chmod +x prepare-commit-msg给脚本添加可执行权限。Windows环境下Git依然会校验这个权限位。

效果和团队推广说明

  • 配置完成后无需重启Sourcetree,点击提交按钮打开对话框时,输入框会自动带上当前分支提取到的Jira ID前缀,直接在后面写提交内容即可。
  • 团队批量推广时,可以把这个钩子放到团队共享的配置仓库,通过Git的core.hooksPath参数配置全局钩子目录,不需要每个开发手动给每个项目加钩子文件。
  • 你之前了解到的「Windows版Sourcetree不支持提交模板」是非常老版本的问题,当前新版本已经支持,但钩子方案比静态模板灵活很多——ID是动态从当前分支名提取的,切换分支后自动对应,不需要手动修改模板内容。

内容的提问来源于stack exchange,提问作者Kira Resari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:33:16