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,每一个细节都影响着团队效率和代码质量。选择适合团队规模和项目特点的工作流,并持续优化。