s-blog

团队 Git 分支管理与发版流程

ssssmy · 2026-06-05 · 3 min · Git

团队基于 master / dev / feat / fix 四类分支的迭代开发与热修复流程,配合 rebase 整理提交历史与 Merge Request 评审。

分支策略

  1. master:始终与生产环境一致。
  2. dev:集成测试环境分支。
  3. feat_*:功能开发分支,源于 dev,合并回 dev。
  4. fix_*:热修复分支,源于 master,合并回 master 和 dev。
  5. Rebase:提交 Merge Request 前用 git rebase 把本地提交整理成一条直线,便于评审与集成。
  6. 同步机制:BUG 修复完成后必须同步到 dev,否则下次迭代同一 BUG 可能再次出现。

新功能迭代开发流程

flowchart TD
    A[迭代开始] --> B[拉取 master 主干代码]
    B --> C[检出并切换到 dev 分支]
    C --> D["从 dev 切出功能分支<br>feat_功能名称_人员名称"]
    D --> E[进行开发]
    E --> F{开发完成?}
    F -- 否 --> E
    F -- 是 --> G[拉取远端 dev 最新代码]
    G --> H["在功能分支上执行:<br>git rebase dev"]
    H --> I[解决可能出现的冲突]
    I --> J["提交 Merge Request<br>源:feat → 目标:dev"]
    J --> K[团队代码评审]
    K -- 需修改 --> L[本地修改后再次 rebase 并强推]
    L --> J
    K -- 通过 --> M[Merge 至 dev 分支]
    M --> N[构建 dev 分支进行测试]
    N --> O{测试通过?}
    O -- 发现 BUG --> P[在 dev 上修复或切新分支修复]
    P --> N
    O -- 通过 --> Q["提交 Merge Request<br>源:dev → 目标:master"]
    Q --> R[团队代码评审]
    R -- 通过 --> S[Merge 至 master 分支]
    S --> T[进行发版]
    T --> U["将 master 打上版本 Tag<br>如: v1.0.0"]
    U --> V[迭代结束]

发版后 BUG 修复流程

flowchart TD
    A[发现生产环境 BUG] --> B["从 master 最新 Tag<br>切出修复分支 fix_功能_人员名称"]
    B --> C[进行 BUG 修复]
    C --> D{修复完成?}
    D -- 否 --> C
    D -- 是 --> E[拉取远端 master 最新代码]
    E --> F["在 fix 分支上执行:<br>git rebase master"]
    F --> G[解决可能出现的冲突]
    G --> H["提交 Merge Request<br>源:fix → 目标:master"]
    H --> I[紧急代码评审]
    I -- 需修改 --> J[本地修改后再次 rebase 并强推]
    J --> H
    I -- 通过 --> K[Merge 至 master 分支]
    K --> L[发版并将 master 打上新 Tag]
    L --> M[拉取远端 dev 最新代码]
    M --> N["在 fix 分支上执行:<br>git rebase dev"]
    N --> O[解决可能出现的冲突]
    O --> P["提交 Merge Request<br>源:fix → 目标:dev"]
    P --> Q[代码评审]
    Q -- 通过 --> R[Merge 至 dev 分支<br>确保后续开发包含此修复]
    R --> S[BUG 修复流程结束]

原文链接:https://www.ssssmy.com/notes/tuan-dui-git-fen-zhi-guan-li-yu-fa-ban-liu-cheng