Git工作流与团队协作最佳实践
Git工作流与团队协作最佳实践
🔀 你将学到
- Git核心概念和常用命令
- 主流Git工作流对比与选择
- 代码审查与合并策略
- 解决冲突的技巧
🎯 Git基础回顾
核心概念图解
1 | 工作区(Working Directory) |
常用命令速查
1 | # 初始化与克隆 |
🔄 主流Git工作流
1. Git Flow
适用于发布周期固定的项目。
1 | main ─────●───────────────●─────────────●──────→ |
分支说明:
main: 生产环境代码develop: 开发主分支feature/*: 功能分支release/*: 发布分支hotfix/*: 紧急修复分支
1 | # Git Flow 工作流程示例 |
2. GitHub Flow
适用于持续部署的项目,简单高效。
1 | main ─────●───────●───────●───────●───────→ |
流程:
- 从main创建分支
- 开发并提交
- 创建Pull Request
- 代码审查
- 合并到main并部署
1 | # GitHub Flow 示例 |
3. Trunk-Based Development
适用于高度自动化测试的团队。
1 | main ─────●───●───●───●───●───●───●───────→ |
特点:
- 所有开发者直接向main提交
- 分支生命周期很短(几小时到1天)
- 依赖Feature Flag控制功能发布
📝 Commit Message规范
Conventional Commits格式
1 | <type>(<scope>): <subject> |
Type类型
| 类型 | 说明 | 示例 |
|---|---|---|
feat | 新功能 | feat: 添加用户注册功能 |
fix | Bug修复 | fix: 修复登录验证码失效问题 |
docs | 文档更新 | docs: 更新API文档 |
style | 代码格式 | style: 格式化代码 |
refactor | 重构 | refactor: 重构用户模块 |
perf | 性能优化 | perf: 优化首页加载速度 |
test | 测试 | test: 添加单元测试 |
chore | 构建/工具 | chore: 更新依赖版本 |
示例
1 | # 好的提交信息 |
🔀 合并策略
1. Merge Commit
1 | git checkout main |
1 | A---B---C feature |
优点:保留完整历史,可追溯
缺点:历史记录较多
2. Squash Merge
1 | git checkout main |
1 | A---B---C feature |
优点:历史简洁
缺点:丢失详细提交记录
3. Rebase
1 | git checkout feature/xxx |
1 | A---B---C feature (before rebase) |
优点:线性历史,整洁
缺点:改写历史,需谨慎使用
⚔️ 解决冲突
冲突示例
1 | <<<<<<< HEAD |
解决步骤
1 | # 1. 拉取最新代码 |
使用VS Code解决冲突
VS Code提供了直观的冲突解决界面:
- Accept Current Change: 保留当前分支修改
- Accept Incoming Change: 使用合并进来的修改
- Accept Both Changes: 保留两者
- Compare Changes: 对比查看差异
🛡️ 代码审查最佳实践
PR/MR检查清单
- ✅ 代码符合编码规范
- ✅ 有足够的测试覆盖
- ✅ 没有敏感信息泄露
- ✅ 性能影响已评估
- ✅ 文档已更新
- ✅ Commit message规范
审查者要点
1 | ## 审查重点 |
🚀 实用技巧
1. 交互式Rebase整理提交
1 | # 整理最近3次提交 |
2. Cherry-pick选择性合并
1 | # 将某个提交应用到当前分支 |
3. Bisect二分查找Bug
1 | # 开始二分查找 |
4. 配置别名提高效率
1 | # 在 ~/.gitconfig 添加 |
📊 团队协作规范模板
1 | # Git协作规范 |
掌握Git,让团队协作更高效! 🎉
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Pasule Blog!

