You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何配置 Vercel 只部署特定的 Git 分支(例如 prod),而不是所有分支?

如何配置 Vercel 只部署特定的 Git 分支(例如 prod),而不是所有分支?

要实现Vercel仅部署指定分支(如prod)并禁用其他分支的自动部署,你可以通过两种官方推荐的方式配置,以下是详细步骤:


方法一:使用 Vercel 分支规则(推荐,可视化配置)

这是Vercel提供的原生可视化控制方式,能精确指定允许/禁止部署的分支:

  1. 打开你的Vercel项目,进入顶部导航的 Settings(设置)页面
  2. 在页面标签中切换到 Git 选项卡
  3. 向下滚动页面,找到 Branch Rules(分支规则)区域
  4. 点击 Add Rule(添加规则),按顺序创建两条规则:
    • 第一条规则(允许prod分支部署):
      • Branch name pattern 输入框中填写 prod(精确匹配生产分支)
      • Deployment Configuration 下拉菜单中选择 Deploy this branch(部署此分支)
      • 可选:在 Environment 中指定部署为「Production」环境
    • 第二条规则(禁止所有其他分支部署):
      • Branch name pattern 输入框中填写 *(匹配所有未被前面规则覆盖的分支)
      • Deployment Configuration 下拉菜单中选择 Do not deploy this branch(不部署此分支)
  5. 点击 Save Rules 保存配置

配置完成后,只有prod分支的代码推送会触发部署,其他所有分支的推送都会被Vercel直接忽略。


方法二:使用忽略构建步骤(命令行逻辑控制)

如果你需要更灵活的条件判断(比如允许多个分支部署),可以通过Ignored Build Step配置命令行逻辑来跳过非目标分支的构建:

  1. 进入Vercel项目的 Settings > Git 页面
  2. 找到 Ignored Build Step(忽略构建步骤)输入框
  3. 输入以下命令:
    if [ "$VERCEL_GIT_COMMIT_REF" != "prod" ]; then echo "Skipping deployment for non-prod branch: $VERCEL_GIT_COMMIT_REF"; exit 0; fi
    
  4. 点击 Save 保存设置

命令逻辑说明:

  • VERCEL_GIT_COMMIT_REF是Vercel自动注入的环境变量,代表当前推送的Git分支名
  • 当分支不是prod时,命令会输出提示并以exit 0正常退出,Vercel会识别此状态并跳过构建部署
  • 如果是prod分支,命令不会执行exit 0,Vercel会正常触发构建

为什么你之前的设置没有生效?

你之前配置的「生产环境跟踪prod分支」,只是指定哪个分支的部署会被标记为Vercel的生产环境,并不会改变Vercel默认对所有分支推送触发预览部署的行为。要禁用其他分支的部署,必须通过上述分支规则或忽略构建步骤来额外配置。


验证配置是否生效

  1. 推送代码到main分支,打开Vercel项目的Deployments页面,应该看不到新的部署记录,或看到「Skipped」(已跳过)的状态
  2. 推送代码到prod分支,确认Vercel正常触发构建并完成部署

更多细节可参考Vercel官方文档:Vercel Branch Rules

火山引擎 最新活动