2026-10-26 16:16:38【入门】Git 工作流完全指南:从入门到熟练掌握
引言Git 是现代软件开发中最核心的版本控制工具,但很多团队只用它来做最基本的提交和推送。实际上,Git 掌握得好,能让团队协作效率提升数倍,代码审查流程更加顺畅,回滚操作也不再让人心惊胆战。
本文从实际项目出发,介绍一套完整的 Git 工作流,涵盖日常开发中 90% 的场景。
分支策略:GitFlow 还是 Trunk-Based?GitFlow 工作流GitFlow 是 Vincent Driessen 提出的经典分支模型:
main:稳定分支,始终可发布develop:开发分支,整合所有功能feature/*:功能分支release/*:发布分支hotfix/*:紧急修复分支main ──────────────────────────────────►
↑ ↑ hotfix/* ↑
└────────────┴──────────────────┘
develop ─► feature/* ─► release/* ─►
Trunk-Based Development越来越多的团队转向更简单的 Trunk-Based 模式:
所有开发者频繁合并到 main使用特性开关(Feature Flag)控制未完成功能短命的功能分支(不超过 2 天)推荐:小团队用 Trunk-Based,大团队可以用精简版的 GitFlow。
日常命令速查# 创建并切换分支
git checkout -b feature/my-feature
# 暂存特定文件
git add src/App.tsx src/utils/helper.ts
# 交互式暂存(推荐)
git add -p
# 修改最后一次提交(还没 push 的情况下)
git commit --amend
# 变基(保持线性历史)
git rebase main
# 压缩多个提交
git rebase -i HEAD~3
# 查看提交历史
git log --oneline --graph --all
# stash 暂存工作区
git stash push -m "wip: working on login"
git stash pop # 恢复并删除 stash
合并冲突处理技巧冲突标记解读<<<<<<< HEAD
const user = { name: 'Alice', age: 25 };
=======
const user = { name: 'Bob', age: 30 };
>>>>>>> feature/add-user
<<<<<<< HEAD 和 ======= 之间是当前分支的内容,======= 和 >>>>>>> 之间是待合并分支的内容。
最佳处理流程不要直接删除冲突标记:用编辑器或 IDE 的冲突解决工具先理解再决定:问自己"两个版本分别想实现什么"小步提交:解决完一小部分就 git add + git commit# 使用 VS Code 的冲突编辑器
code --diff $MERGED $LOCAL $REMOTE
# 或者用 git mergetool
git mergetool
避免冲突的建议频繁 rebase main:每天开始工作时 git fetch && git rebase main功能分支要小:一个分支只做一个功能,冲突概率低统一代码风格:避免多人同时修改同一文件rebase vs merge:该用哪个?场景推荐原因同步 main 到功能分支rebase保持线性历史合并 feature 到 developmerge --no-ff保留功能分支信息hotfix 修复merge快速且保留上下文已经 push 的提交永远不要 rebase会重写远程历史黄金法则:已经推送到远程的提交,永远不要 rebase。
团队协作规范提交信息规范推荐使用 Conventional Commits:
feat: 添加用户登录功能
fix: 修复支付回调重复扣款问题
docs: 更新 API 文档
style: 格式化代码(不影响功能)
refactor: 重构代码结构
test: 添加单元测试
chore: 更新构建脚本
Code Review 配合# 提交前检查
git status
git diff --staged # 看将要提交的内容
# push 前检查
git fetch origin
git log origin/main..HEAD # 看将要推送的提交
常见问题处理1. 误删分支恢复git reflog
git checkout -b recovery-branch abc1234
2. 撤销 git addgit reset HEAD
git reset HEAD . # 撤销所有
3. 撤销已 push 的提交# 创建新提交来撤销(推荐,安全)
git revert HEAD
# 硬回退(危险,需要 force push)
git reset --hard HEAD~1
git push --force
4. .gitignore 不生效git rm -r --cached . # 清除缓存
git add .
git commit -m "fix: update .gitignore"
总结Git 是一把利器,用好它需要不断实践。记住几个核心原则:
频繁提交,小步前进保持分支干净,用完就删已 push 的不要 rebase用 rebase 同步,merge 合并掌握了这些,你已经超过了 80% 的开发者。继续深入,探索 submodules、subtrees、bisect 等高级功能吧。
参考资料Git 官方文档Conventional Commits 规范Atlassian Git 教程