696 字
3 分钟
Git 发布规范

Git 发布规范(企业级工程实践)#

本文介绍一套在中大型项目中被广泛使用的 Git 发布规范,结合 Git Flow + Conventional Commits + SemVer 用于构建可维护、可回滚、可自动化发布的软件工程体系。

这套规范适用于:

  • Go 后端服务
  • 前端 Web 项目
  • 基础设施库(RBAC、HTTP Server、Cache、ORM、SDK 等)
  • 开源项目

一、为什么需要发布规范#

没有发布规范的项目通常会出现:

  • 版本号混乱(v1、v1.1_final、v1_fix)
  • 不知道哪些提交已经上线
  • 线上 Bug 无法快速回滚
  • API 被破坏却无感知

发布规范的目标是:

  • 每一次上线都是可追溯的
  • 每一个版本都有明确语义
  • 自动生成 changelog
  • 自动触发 CI/CD

二、核心组成#

本规范由三部分组成:

组件作用
Git Flow分支管理
SemVer版本号规则
Conventional Commits提交规范

三者结合后,就形成了一套可自动化的发布体系。


三、分支模型(Git Flow)#

标准分支如下:

main # 生产环境代码
develop # 开发主分支
feature/* # 功能开发
release/* # 发版准备
hotfix/* # 线上紧急修复

分支职责#

分支说明
main永远是可上线状态
develop所有新功能集成
feature一个功能一个分支
release冻结版本,只修 bug
hotfix修复线上问题

四、版本号规则(SemVer)#

格式:

MAJOR.MINOR.PATCH

示例:

v1.0.0
v1.2.3
v2.0.0

含义:

字段含义
MAJOR不兼容的 API 变更
MINOR新功能(兼容)
PATCHBug 修复

五、Commit Message 规范#

格式:

<type>(<scope>): <subject>

示例:

feat(auth): add jwt refresh token
fix(cache): prevent redis deadlock
refactor(repo): simplify repository layer

常用 type#

type含义影响版本
feat新功能MINOR
fixBug 修复PATCH
perf性能优化PATCH
refactor重构
docs文档
test测试
build构建系统
ciCI 配置
chore杂项

破坏性变更#

feat(auth)!: change jwt payload structure

BREAKING CHANGE: token format updated

这会触发 MAJOR 版本升级。


六、标准发布流程#

1. 开发功能#

Terminal window
git checkout develop
git checkout -b feature/login
git commit -m "feat(auth): implement login"
git push

2. 发版冻结#

Terminal window
git checkout develop
git checkout -b release/1.2.0

只允许修 bug:

Terminal window
git commit -m "fix(auth): correct token expiry"

3. 发布到生产#

Terminal window
git checkout main
git merge release/1.2.0
git tag v1.2.0
git push origin main --tags

同步回 develop:

Terminal window
git checkout develop
git merge release/1.2.0

七、线上紧急修复(Hotfix)#

Terminal window
git checkout main
git checkout -b hotfix/1.2.1
git commit -m "fix(cache): avoid nil pointer"
git checkout main
git merge hotfix/1.2.1
git tag v1.2.1
git push --tags
git checkout develop
git merge hotfix/1.2.1

八、自动化发布#

使用此规范,可以直接接入:

  • semantic-release
  • GitHub Actions
  • GitLab CI

自动完成:

  • 计算版本号
  • 生成 CHANGELOG
  • 打 tag
  • 发布 GitHub Release
  • 发布 Go Module / npm 包

九、结论#

Git 发布规范是区分“写代码”和“做工程”的分水岭。

如果你在做的是:

  • API Server
  • 基础库
  • 框架
  • 团队项目

你必须使用这一套规范。

Git 发布规范
https://iqwq.com/posts/study/git-push-spec/
作者
Rei's Blog
发布于
2026-01-13
许可协议
CC BY-NC-SA 4.0