Feature Branch 策略
Feature Branch(功能分支)是最基础的分支策略,每个新功能在独立分支开发。
什么是 Feature Branch
每个功能开发在独立分支:
- 从主分支创建功能分支
- 独立开发功能
- 完成后合并回主分支
- 删除功能分支
分支结构
Bash
main ────●────●────●────●────●──→
│ │ │
feature/A ●────┘ │
│ │
feature/B ●─────┘
│
PR → Review → Merge
工作流程
步骤1:创建功能分支
Bash
# 更新主分支
git checkout main
git pull origin main
# 创建功能分支
git checkout -b feature/user-profile
步骤2:开发功能
Bash
# 独立开发
git add .
git commit -m "feat: 添加用户资料页面"
# 推送到远程
git push -u origin feature/user-profile
步骤3:保持同步
Bash
# 定期同步主分支更新
git checkout feature/user-profile
git fetch origin
git merge origin/main
# 或使用 rebase
git rebase origin/main
步骤4:完成并合并
Bash
# 方式1:直接合并
git checkout main
git merge --no-ff feature/user-profile
# 方式2:通过 PR(推荐)
# GitHub 创建 Pull Request
# 审核后合并
步骤5:清理分支
Bash
# 删除本地分支
git branch -d feature/user-profile
# 删除远程分支
git push origin --delete feature/user-profile
Feature Branch 原则
| 原则 | 说明 |
|---|---|
| 一分支一功能 | 每个分支只做一件事 |
| 命名规范 | feature/description 格式 |
| 定期同步 | 避免与主分支差异过大 |
| 及时清理 | 合并后删除分支 |
分支命名规范
Bash
# 推荐格式
feature/<description>
# 示例
feature/user-authentication
feature/payment-integration
feature/search-optimization
feature/api-refactor
# 避免使用
my-feature
test
random-name
合并方式选择
| 方式 | 优点 | 缺点 |
|---|---|---|
| merge --no-ff | 保留分支历史 | 有合并提交 |
| merge(快进) | 简洁线性历史 | 无分支信息 |
| rebase + merge | 线性历史 | 改变提交顺序 |
| PR merge | 强制审核 | 需要平台支持 |
Feature Branch 优势
| 优势 | 说明 |
|---|---|
| 隔离开发 | 功能间不互相影响 |
| 便于审核 | PR 审核单个功能 |
| 易于回滚 | 单个功能可独立回滚 |
| 并行开发 | 多人可同时开发不同功能 |
Feature Branch 注意事项
text
# 避免长期分支
# 分支存活时间控制在合理范围
# 定期同步主分支
git merge origin/main # 每几天同步一次
# 控制变更范围
# 一个分支只做一个功能
# 避免混入无关修改
# 及时合并和清理
# 完成后立即合并
# 合并后删除分支
团队协作示例
text
团队开发场景:
main ────●────●────●────●────●──→
│ │ │ │
│ │ │ │
开发者A ●────┘ │ │
│ │ │
开发者B ●─────┘ │
│ │
开发者C ●─────┘
每人开发独立功能,完成后合入
Feature Branch 是最基础的分支策略,几乎所有工作流都基于此。
要点总结
- 每个功能在独立分支开发
- 分支命名使用 feature/ 格式
- 定期同步主分支避免差异过大
- 完成后通过 merge 或 PR 合入
- 合并后及时删除分支
📝 发现内容有误?点击此处直接编辑