预览部署与版本回滚
🎯 引言
学完这篇文章,你将彻底分清预览部署和生产部署的区别,学会利用分支和 PR 自动生成预览环境,并掌握在出问题时一键回滚到历史版本的救命技能。
🧱 两种部署类型
Vercel 里每次部署都属于两种类型之一:
| 类型 | 触发方式 | 影响的网址 |
|---|---|---|
| Production(生产) | 推送到 main 分支、vercel --prod | 正式域名 |
| Preview(预览) | 推送到其他分支、PR、vercel | 每次独立的临时网址 |
它们的关系就像彩排和正式演出:预览部署是彩排,随便试错;生产部署是正式演出,直接面对观众。
💡 用分支触发预览部署
最常见的开发流程是:新功能不在 main 分支上直接改,而是先开分支,验证没问题再合并。Vercel 完美配合了这个流程。
新建一个分支,修改首页标题后推送:
git checkout -b feature/new-title
# 修改 src/App.vue 里的标题
git add .
git commit -m "update home title"
git push origin feature/new-title
push 完成后打开 Vercel 控制台,会看到一条新的预览部署记录,带有一个独立网址,打开就能看到新标题——而此时你的正式域名毫无变化。
在 GitHub 上发起 Pull Request 时,Vercel 还会自动在 PR 里评论预览链接,团队成员点开就能验收效果,这就是预览部署最大的价值。
🕘 查看部署历史
打开项目的 Deployments 页面,这里保存着所有历史部署记录,每一条包含:
- 提交信息(Commit Message)和分支名;
- 部署类型(Production / Preview)和状态;
- 构建用时和部署时间。
每条记录都可以点进去查看构建日志(Build Logs)。线上出问题时,先来这里找到最近一次成功的部署。
↩️ 一键回滚版本
新上线的版本出问题了怎么办?不用慌着重写代码,Vercel 支持瞬间回滚:
⋯ 菜单里选择含义相近的即可。- 在 Deployments 列表找到上一个正常的生产部署;
- 点击右侧的
⋯菜单,选择 Instant Rollback(即时回滚); - 几秒钟后,线上就恢复成旧版本了。
回滚只是把正式域名重新指向旧的部署产物,不需要重新构建,所以几乎是即时生效的。这给了我们"先恢复、再排查"的从容。
🧾 小节总结
- 生产部署对应正式域名,预览部署生成独立的临时网址。
- 推送非 main 分支或创建 PR 会自动触发预览部署,不影响线上。
- Deployments 页面保存全部部署历史,可查看构建日志。
- Instant Rollback 能秒级回滚到历史版本,先恢复线上再排查问题。
- 推荐流程:分支开发 → 预览验证 → 合并 main → 生产上线。
❓ 知识问答
Q1:预览网址会一直有效吗?
A:会保留较长时间,但预览地址主要用于临时验证。长期使用的功能还是要合并到 main 分支走生产部署。
Q2:可以关闭预览部署吗?
A:可以。在项目 Settings → Git 里能调整哪些分支触发部署,不过默认行为已经符合大多数团队的习惯。
Q3:回滚之后还能"回滚回来"吗?
A:可以。每一次部署记录都还在,对新的部署再次执行提升(Promote)操作即可切回去。
Q4:仓库主分支不是 main 会影响生产部署吗?
A:会。Vercel 默认把仓库的主分支作为生产分支,如果你的主分支叫别的名字,要在 Settings → Git 里同步修改 Production Branch。
🧪 小练习
- 新建
feature/lucky-number分支,在首页加一行你的幸运数字,推送后在控制台找到预览部署并访问预览网址。 - 合并到 main 分支,确认正式域名更新;然后对上一次生产部署执行一次回滚,观察线上内容变化。
# 请在这里编写 Git 命令
🎉 恭喜你已经掌握了预览部署与回滚!下一篇我们给项目绑定一个属于自己的域名。
