git-flow 工具是什么
git-flow(AVH edition 等实现)把 Vincent Driessen 分支模型的约定封装成子命令:feature、release、hotfix 各自封装开分支、合并、打标签、删除分支等固定步骤。它不改变 Git 能力,只是让流程自动化、少漏步骤;不用工具也能按同一约定手工操作。选不选它,取决于团队是否真的按这套模型走,而不是它能自动解决协作问题。
基本信息
| 工具 | git-flow 及社区实现(AVH edition 常见) |
|---|---|
| 本质 | 对分支约定的命令封装 |
| 模型 | main / develop + feature / release / hotfix 分支 |
| 初始化 | git flow init 确认主干与各前缀命名 |
| 兼容 | 手工 git 命令可复现同样流程 |
| CI 前提 | 流水线未装工具时,用原生命令等价实现 |
典型使用场景
- 启动新功能:feature start 开分支,finish 合并回 develop 并删分支
- 版本发布:release start / finish 封装合并主干与打标签
- 紧急修复:hotfix 从 main 出发修复,完成后回灌 main 与 develop
- 规范落地:分支命名与生命周期固化,降低新人记忆成本
- 流程审计:子命令让每步动作明确,便于检查与交接
- 手工替代:小团队按同一约定用原生命令操作,不引入工具
常用示例
常用示例
git flow init # 初始化:确认 main/develop 与各前缀
git flow feature start login # 开 feature 分支并切换过去
git flow feature finish login # 完成:默认合并回 develop 并删除分支
git flow release start 1.3.0 # 从 develop 开版本发布分支
git flow release finish 1.3.0 # 合并回 main 与 develop,打标签
git flow hotfix start 1.2.1 # 从 main 开紧急修复分支子命令对照
| 子命令 | 起点 | 收尾动作 |
|---|---|---|
| feature | develop | 合并回 develop,删除分支 |
| release | develop | 合并回 main 与 develop,打标签 |
| hotfix | main | 合并回 main 与 develop,打标签 |
| 手工对照 | 原生 git | 等价于 checkout -b、merge --no-ff 等组合 |
工具降低流程记忆成本;比工具更重要的是把约定写进文档、合并模板与 CI 检查。
finish 的默认动作是 --no-ff 合并并删除分支:想保留分支或调整合并方式,先读工具参数再改配置。
不同实现的分支命名与配置键可能不同:团队内统一实现版本,并把初始化配置写进仓库说明。