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

如何在SourceTree中配置Git Flow预发布钩子,实现发布前执行npm run prod?

在SourceTree的Git Flow工作流中配置预提交钩子自动执行编译命令

当然可以!其实Git本身就自带钩子机制,SourceTree作为Git的可视化客户端,完全能借助这个特性帮你实现需求——在发布版本的最后一次提交前,自动执行npm run prod编译生产环境资源,再也不用担心不小心把dev环境的编译结果提交上去啦。

核心原理:Git的pre-commit钩子

Git的钩子是存在本地仓库.git/hooks目录下的脚本,会在特定的Git操作前/后自动触发。其中pre-commit钩子就是在提交操作执行前触发的,不管你用命令行还是SourceTree这类客户端,只要钩子配置正确,都会生效。

具体配置步骤

1. 找到本地仓库的钩子目录

打开你的项目根目录,找到隐藏的.git文件夹(如果看不到,在系统设置里开启显示隐藏文件),进入里面的hooks子目录。你会看到一些带.sample后缀的示例钩子文件,比如pre-commit.sample。

2. 创建并编辑pre-commit钩子脚本

  • 复制pre-commit.sample文件,重命名为pre-commit(去掉.sample后缀);或者直接新建一个无后缀的pre-commit文件。
  • 用文本编辑器打开这个文件,替换里面的内容为以下脚本(根据你的系统选择bash或批处理版本):

Linux/macOS 下的bash脚本示例:

#!/bin/sh

# 仅在Git Flow的发布分支触发(可选,按需开启)
current_branch=$(git rev-parse --abbrev-ref HEAD)
if [[ ! $current_branch =~ ^release/ ]]; then
    exit 0  # 不是发布分支,直接跳过钩子逻辑
fi

# 执行生产环境资源编译
echo "🔧 开始编译生产环境资源..."
npm run prod

# 检查编译是否成功
if [ $? -ne 0 ]; then
    echo "❌ 生产环境资源编译失败,已取消提交!"
    exit 1
fi

# 将编译后的资源加入本次提交(替换成你实际的资源目录,比如dist/、build/)
git add dist/

echo "✅ 编译完成,已将资源加入提交"

Windows 下的批处理脚本示例:

@echo off

:: 仅在Git Flow的发布分支触发(可选,按需开启)
for /f %%i in ('git rev-parse --abbrev-ref HEAD') do set current_branch=%%i
if not "%current_branch:~0,8%"=="release/" exit /b 0

:: 执行生产环境资源编译
echo 🔧 开始编译生产环境资源...
npm run prod

:: 检查编译是否成功
if %errorlevel% neq 0 (
    echo ❌ 生产环境资源编译失败,已取消提交!
    exit /b 1
)

:: 将编译后的资源加入本次提交(替换成你实际的资源目录)
git add dist/

echo ✅ 编译完成,已将资源加入提交

3. 给钩子脚本添加执行权限(仅Linux/macOS需要)

打开终端,进入项目根目录,执行以下命令:

chmod +x .git/hooks/pre-commit

Windows系统不需要这一步,直接保存脚本即可。

4. 在SourceTree中验证效果

当你用SourceTree启动Git Flow的发布流程(点击顶部工具栏的「Git Flow」按钮,选择「Start Release」),在发布分支上进行提交时,SourceTree会自动触发pre-commit钩子:

  1. 先执行npm run prod编译资源
  2. 如果编译失败,提交会被自动取消,你能看到错误提示
  3. 编译成功后,脚本会把编译后的资源加入本次提交,然后正常完成提交

额外注意事项

  • 确保你的项目根目录下有package.json,并且里面正确配置了prod脚本。
  • 如果不想限制仅在发布分支触发,可以删掉脚本里的分支判断逻辑,这样所有提交都会触发编译(但可能会影响日常开发效率)。
  • 钩子是本地仓库的配置,不会同步到远程仓库,如果团队其他成员也需要这个功能,需要把钩子脚本共享给他们(比如放到项目的scripts目录,再写个安装脚本复制到.git/hooks)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:47:31