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 教程

↑