Git 工作流最佳实践:团队协作的规范指南

Git 工作流最佳实践

Git 是现代软件开发不可或缺的版本控制工具。然而,仅仅会用 git commit / push 远远不够。合理的工作流规范能让团队协作更顺畅,代码历史更清晰,发布流程更安全。

一、主流 Git 工作流对比

Git Flow:适合有明确版本发布周期的项目。维护 main、develop、feature、release、hotfix 五类分支,流程清晰但相对复杂。

GitHub Flow:简化版,只有 main 分支和 feature 分支。适合持续部署的互联网项目,简单高效。

Trunk Based Development:所有人直接提交到 main,依赖 Feature Flag 控制功能上线,适合成熟的大型团队。

二、分支命名规范

feature/user-login          # 新功能
bugfix/fix-payment-error    # Bug修复
hotfix/critical-security    # 紧急修复
release/v2.1.0             # 版本发布
chore/update-dependencies  # 杂项维护

三、Commit Message 规范(Conventional Commits)

规范的提交信息让历史一目了然,且可以自动生成 CHANGELOG:

feat: 新增用户登录功能
fix: 修复支付金额精度问题
docs: 更新 API 文档
style: 格式化代码,不影响逻辑
refactor: 重构订单模块
perf: 优化数据库查询性能
test: 添加用户模块单元测试
chore: 升级 Node.js 依赖

四、Code Review 最佳实践

高质量 Code Review 要注意:

  • PR 大小控制在 200-400 行内,超大 PR 难以有效审查
  • 提交者写清楚改动说明、测试方法、截图(前端)
  • 审查者关注:逻辑正确性 > 代码规范 > 性能
  • 用评论工具而非聊天,保留决策上下文
  • 避免挑剔代码风格(交给 linter 做),专注于真正重要的问题

五、常用高级 Git 命令

# 交互式暂存(只暂存部分修改)
git add -p

# 撤销最后一次提交(保留修改)
git reset --soft HEAD~1

# 修改最后一次提交信息
git commit --amend --no-edit

# 从其他分支挑选特定提交
git cherry-pick abc1234

# 储存当前修改(不提交)
git stash save "WIP: 登录功能"
git stash pop

# 找出引入Bug的提交
git bisect start
git bisect bad HEAD
git bisect good v1.0.0

# 清理已合并分支
git branch --merged | grep -v main | xargs git branch -d

六、.gitignore 配置技巧

项目 .gitignore 应忽略:编译产物(target/、dist/、*.pyc)、依赖目录(node_modules/、vendor/)、本地配置(.env、*.local)、IDE 配置(.idea/、.vscode/)。推荐使用 gitignore.io 自动生成对应语言/框架的模板。

七、Git Hooks 自动化

利用 Git Hooks 在特定事件前后自动执行脚本:pre-commit(提交前自动运行 lint/test)、commit-msg(检查提交信息格式)、pre-push(推送前跑完整测试)。推荐使用 Husky(Node.js 项目)管理 Git Hooks。

总结

好的 Git 工作流是团队协作的润滑剂。从分支命名、提交规范到 Code Review,每一个细节都影响着团队效率和代码质量。选择适合团队规模和项目特点的工作流,并持续优化。

发表评论