Best Practices

发布前 Git 卫生专题

在发布前用一组 Git 检查动作降低标签、分支和版本记录出错概率。

适合谁看
  • 希望把 Git 用得更稳的个人或团队
  • 准备建立协作规范的维护者
前置知识
  • 至少有一次真实协作经验
  • 知道常见命令但还没形成稳定习惯
常见风险
  • 把建议当硬规则而忽略上下文
  • 只记流程,不理解背后的协作边界

为什么发布前最怕"差不多就行"

发布卫生实践发布卫生确保每次发布都是可追溯、可重复、可回滚的。包括版本号管理、tag 规范、changelog 维护和发布验证。
发布准备
代码已冻结测试已通过changelog 待更新版本号待升级
干净发布
语义化版本号 vX.Y.Zannotated tag + 签名changelog 按版本分组发布后验证清单
发布卫生不是流程负担,而是质量保障。每次发布都应该是可信赖的事件。

发布是一个高风险动作。 所以发布前 Git 卫生的目标不是多做流程,而是确保“这次发布到底对应哪段历史”这件事足够清楚。

1. 先确认你站在正确的分支和提交上

发布前至少先确认两件事:

git status
git log --oneline --decorate -5

你要能明确知道:

  • 当前是否在预期的发布分支上
  • 工作区是不是干净的
  • 最近几次提交是否真的是本次要发布的内容

如果这一步都说不清,后面再打 tag 就是在给以后挖坑。

2. 标签一定要和具体提交绑定清楚

发布标签最怕两种问题:

  • tag 打错提交
  • tag 名称不稳定

更稳的习惯是先确认目标提交,再打注释标签:

git tag -a v1.4.0 -m "Release v1.4.0"
git show v1.4.0

git show 这一步很重要,它会让你看到 tag 最终到底落在了哪次提交上。

3. 发布前最好再核一次差异范围

除了看提交,还应该再看一次本次发布相对上一个版本到底改了什么。
一个很实用的检查方式是比较上个 tag 到当前 HEAD 的范围:

git diff --stat v1.3.0..HEAD

这样可以快速判断:

  • 这次发布的范围是否符合预期
  • 有没有混进不该发布的改动
  • 发布说明和真实改动是否一致

4. 发布历史最好可追、可复盘

一个发布不是“发出去就结束”,以后你还会需要:

  • 回答某个问题在哪个版本进入
  • 对比两个版本之间的差异
  • 回滚到某个稳定版本

所以发布时更稳的做法是:

  • tag 命名一致
  • 标签说明简洁明确
  • 发布说明能和 Git 历史对上

5. 一个适合团队长期执行的发布前清单

可以收成下面这 5 步:

  1. 确认当前分支和工作区状态
  2. 看最近几条提交是否正确
  3. 检查本次发布范围
  4. 给正确提交打清晰的 tag
  5. 再次核对 tag 指向

这套动作很轻,但能显著降低发布后“版本记录讲不清”的问题。