首页/开发/Git 与协作速查/GitHub Flow 工作流

GitHub Flow 工作流

轻量流程:只保留一条长期分支,改动走「开分支 → 提交 → 开 PR → 评审 → 合并」,前提是 main 始终可部署。

Git 与协作速查开发更新于 2026-10-13

GitHub Flow 是什么

GitHub Flow 是一条轻量流程:只保留一条长期分支(通常是 main),任何改动都走「从 main 开分支 → 提交 → 开 PR → 评审 → 合并 → 删除分支」。它的前提是 main 始终处于可部署状态,因此合并动作本身就可以视作一个发布信号。相比 GitFlow,它没有 develop 与 release 分支的层层流转,适合持续部署、发布频繁的 Web 服务与制品团队。

基本信息

长期分支仅 main,保持可部署
流程开分支 → 提交 → PR → 评审 → 合并 → 删除分支
适用持续部署、发布频繁的团队
关键前提主干始终可部署,配套测试与自动化
平台GitHub 官方提出,任何平台可实践

典型使用场景

  • Web 服务按天或按周持续交付
  • 小团队希望流程简单、减少分支层级
  • 改动通过 PR 评审后即可直接部署
  • 制品发布频繁,不需要独立冻结期
  • 用特性开关隔离未完成功能,代码先合入
  • 作为新手团队的第一套协作流程逐步演进

流程示例

流程示例
git switch main && git pull            # 从最新主干开始
git switch -c feature/login            # 为本次改动开分支
git commit -m 'feat: add sso login'    # 小步提交
git push -u origin feature/login       # 推送并建立跟踪
# 平台上发起 PR,评审通过后合并并删除分支

与 GitFlow 的差别

维度GitHub FlowGitFlow
长期分支仅 mainmain 与 develop
发布方式合并即可部署另走 release 分支
流程复杂度低高
官方文档把「main 随时可部署」作为前提,合并动作等价于可发布信号;这要求主干具备可回退的部署能力。
合并方式会影响回滚粒度:需要按功能回滚时选合并提交,追求线性历史则用压缩或变基,团队应统一约定。

落地这套流程的几个前提

  • 主干具备自动化测试与可回退的部署能力
  • 分支开得足够小,PR 能在一天内评审完成
  • 合并方式在仓库设置里统一,避免历史风格混杂
  • 回滚方案提前演练过,而不是等出故障时再想

易错点

  • 没有发布分支兜底时,回滚依赖 revert 与部署侧回退能力,需提前设计好路径
  • 主干保持可部署需要测试与自动化支撑,否则模型退化为口号,问题会转移到主干
  • 分支开得过大、评审周期过长,会让流程的轻量优势消失
  • 合并方式与分支策略不统一,主干历史混乱,回滚粒度不一致
  • 把「主干可部署」理解为「主干必须已部署」,会造成不必要的发布压力

数据来源与参考

  • GitHub 官方文档:GitHub Flow
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌