👥 第十一章:协作工作流 —— 团队作战
Gitflow 工作流
Gitflow 是一种经典的分支管理策略,适合有计划发布版本的项目。
text
Gitflow 分支结构:
main ─────●────────────────●───────────●─── (生产环境)
│ ↑ ↑
│ │ │
release ──┼──────●─────────┘ │
│ ↑ │
│ │ │
develop ──●──●───●──●──●──●──●──●─────┘──●── (开发主线)
↑ ↑ ↑
│ │ │
feature/xxx ───┘ │ │
feature/yyy ─────────┘ │
bugfix/zzz ───────────────────┘
分支说明:
• main: 生产环境的代码,只接受 release 和 hotfix 的合并
• develop: 开发主线,所有功能分支的汇聚点
• feature/*: 功能分支,从 develop 创建,完成后合并回 develop
• release/*: 发布分支,从 develop 创建,测试通过后合并到 main 和 develop
• hotfix/*: 紧急修复分支,从 main 创建,修复后合并到 main 和 developGitHub Flow —— 简单就是美
GitHub Flow 比 Gitflow 简单得多,适合持续部署的项目。
text
GitHub Flow 流程:
1. main 分支始终可部署
2. 从 main 创建描述性分支(如 add-login-page)
3. 在分支上开发并提交
4. 发起 Pull Request
5. 代码审查通过后合并到 main
6. 合并后立即部署
main ──●──●──●──────●──────●── (始终可部署)
↑ ↑ ↑
│ │ │
feat/a ──┘ │
PR + merge │
│
feat/b ───┘
PR + mergeForking 工作流 —— 开源项目的标准
在开源项目中,你通常没有直接 push 的权限。流程是:
bash
# 1. 在 GitHub 上 Fork 仓库到你的账号下
# 2. 克隆你自己的 Fork
git clone git@github.com:小明/开源项目.git
cd 开源项目
# 3. 添加原始仓库为 upstream
git remote add upstream git@github.com:原作者/开源项目.git
# 4. 创建功能分支
git switch -c fix/修复文档错误
# 5. 开发、提交、推送
git add .
git commit -m "docs: 修复 README 中的拼写错误"
git push origin fix/修复文档错误
# 6. 在 GitHub 上发起 Pull Request
# 7. 同步上游的最新代码
git fetch upstream
git switch main
git merge upstream/main
git push origin mainPull Request 的最佳实践
- 一个 PR 只做一件事——不要在一个 PR 里既加功能又修 bug 还重构代码
- 写清楚 PR 描述——说明改了什么、为什么改、怎么测试
- 保持 PR 小而精——一个 3000 行的 PR 没人想 review
- 及时响应 review 意见——别让 reviewer 等太久
- 合并前确保 CI 通过——不要让测试挂掉的代码进 main