Git 工作流最佳实践
Git:不只是版本控制 Git 是现代软件开发的基石,但很多团队并没有充分发挥它的潜力。一个好的 Git 工作流不仅是「保存代码历史」,更是: - 团队沟通的载体 - 代码质量的保障 - 项目进度的可视化 - 问题追溯的线索 分支策略 Git Flow Git Flow 是最经典的分支策略,适合有明确版本发布周期的项目...
Git:不只是版本控制
Git 是现代软件开发的基石,但很多团队并没有充分发挥它的潜力。一个好的 Git 工作流不仅是「保存代码历史」,更是:
- 团队沟通的载体
- 代码质量的保障
- 项目进度的可视化
- 问题追溯的线索
分支策略
Git Flow
Git Flow 是最经典的分支策略,适合有明确版本发布周期的项目:
main:生产代码,永远是可部署的develop:开发主分支,集成所有功能feature/*:功能分支,从 develop 拉出release/*:发布准备分支hotfix/*:紧急修复分支
优点:结构清晰,适合大型团队 缺点:流程较重,对小团队可能过度
GitHub Flow
更轻量的策略,适合持续部署的项目:
main:永远是可部署的- 功能分支从 main 拉出
- 通过 PR 合并回 main
- 合并即部署
优点:简单直接,适合快速迭代 缺点:缺乏明确的版本管理
Trunk-Based Development
最简化的策略,适合高度成熟的团队:
- 只有
main(或trunk)一个长期分支 - 所有开发在 main 上进行
- 使用 Feature Flag 控制未完成功能
- 频繁提交,小步快跑
优点:避免合并地狱,强制持续集成 缺点:需要成熟的 CI/CD 和 Feature Flag 基础设施
我的建议
根据团队规模选择:
| 团队规模 | 推荐策略 |
|---|---|
| 1-3 人 | GitHub Flow |
| 4-15 人 | GitHub Flow + 简化 Git Flow |
| 15+ 人 | Git Flow 或 Trunk-Based |
Commit 规范
Conventional Commits
这是目前最广泛使用的 Commit 规范:
<type>(<scope>): <subject>
<body>
<footer>常用的 type:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式调整(不影响逻辑)refactor: 重构perf: 性能优化test: 测试相关chore: 构建、工具变更
示例
好的 commit message:
feat(auth): add JWT refresh token rotation
Implement refresh token rotation to enhance security.
When a refresh token is used, a new one is issued and
the old one is invalidated.
Closes #123不好的 commit message:
fix stuff为什么规范重要?
- 自动化 Changelog:通过 type 自动生成变更日志
- 快速定位:
git log --oneline一目了然 - Code Review:PR 标题和描述可以直接用 commit message
- 回滚依据:出现问题时快速定位需要回滚的 commit
PR / MR 最佳实践
标题和描述
PR 标题应该简洁明了地描述变更内容:
## 变更内容
- 添加用户注册 API
- 实现邮箱验证逻辑
- 添加注册相关单元测试
## 测试
- [x] 单元测试通过
- [x] 手动测试注册流程
- [ ] 邮件发送测试(需要 staging 环境)
## 截图
(如有 UI 变更,附截图)Review 规范
- 小 PR:每个 PR 控制在 200-400 行以内
- 自描述:PR 应该能独立理解,不需要额外背景知识
- 及时 Review:24 小时内完成 Review
- 建设性反馈:提出具体的改进建议,而不是笼统的「这里有问题」
常用 Git 技巧
交互式 Rebase
# 修改最近 3 个 commit
git rebase -i HEAD~3可以合并、重排、修改 commit message,保持历史整洁。
Stash 管理
# 临时保存工作区
git stash push -m "WIP: feature-x"
# 查看所有 stash
git stash list
# 恢复并删除
git stash popCherry-pick
# 将某个 commit 应用到当前分支
git cherry-pick abc123适合将 hotfix 应用到多个分支。
Bisect
# 二分法查找引入 Bug 的 commit
git bisect start
git bisect bad # 当前版本有问题
git bisect good v1.0 # v1.0 没问题Git 会自动帮你找到第一个出问题的 commit。
小结
一个好的 Git 工作流是团队效率的乘数。投入时间建立规范,在项目成长过程中会获得巨大的回报。记住:
- 分支策略选择适合团队的,不要过度设计
- Commit message 是写给人看的,也是写给未来的自己看的
- PR 是交流的机会,充分利用 Code Review 提升代码质量
Related Articles
容器化开发环境
「在我电脑上能跑」的终结者 如果你在团队开发中工作过,你一定遇到过这个经典场景: 「这个 Bug 我本地复现不了啊,在我电脑上是正常的。」 这个问题的根源是环境不一致——每个开发者的本地环境都有微妙差异:不同的操作系统、不同的运行时版本、不同的依赖安装方式。 Docker 和容器化开发环境就是为解决这个问题而生的。 为...
如何选择适合你的 AI 编程工具
没有「最好的」工具,只有最适合的 在 AI 编程工具百花齐放的时代,最常见的问题是:「哪个工具最好?」答案是:取决于你的场景。 一个全栈开发者、一个数据科学家、一个 DevOps 工程师,他们对 AI 编程工具的需求是截然不同的。本文将按不同场景,给出具体的工具选择建议。 场景一:日常功能开发 推荐工具:Cursor...
编辑器生态:VS Code 与 Neovim 的选择
编辑器:开发者的第二个家 你每天在编辑器里度过的时间可能比在床上还多。选择一个合适的编辑器,不只是选择一个工具,更是选择一种工作方式。 2026 年的编辑器生态,两大阵营最为活跃:VS Code(及其衍生品) 和 Neovim。它们各有拥趸,也各有优劣。 VS Code:主流之选 为什么 VS Code 如此流行? V...