返回文章列表
技术2026-06-01

Git 从入门到团队协作

掌握 Git 核心命令、分支策略和团队协作最佳实践。

引言

Git 已经成为软件开发的事实标准。但很多开发者对 Git 的使用停留在 git add . && git commit -m "fix" && git push 的阶段。本文带你从 Git 核心原理出发,到团队协作中的分支策略和最佳实践。

一、Git 的底层模型

理解 Git 的关键在于理解它不是一个"版本管理工具",而是一个内容寻址文件系统。Git 中的每个对象(commit、tree、blob)都有一个基于 SHA-1 的哈希 ID。每一次 commit 都指向一个完整的文件树快照。

# 查看 Git 对象
git cat-file -p HEAD       # 查看最新 commit 的内容
git cat-file -p HEAD^{tree} # 查看 tree 对象
git log --oneline --graph   # 可视化提交历史

二、核心工作区概念

三、分支策略: Git Flow vs Trunk-Based

Git Flow

经典的分支模型,定义了 maindevelopfeature/*release/*hotfix/* 五种分支类型。适合有固定发布周期的团队。

Trunk-Based Development

所有开发者直接在 main 分支上工作,通过 Feature Flag 和短分支控制未完成的功能。Google、Facebook 等大厂的主流选择。适合持续部署的团队。

推荐实践: GitHub Flow (简化版)

  1. main 创建 feature 分支
  2. 在 feature 分支上开发和提交
  3. 提交 Pull Request
  4. Code Review 通过后合并到 main
  5. 部署 main 分支

四、实用命令合集

# 撤销操作
git reset HEAD~1              # 撤销最近一次 commit(保留修改)
git reset --hard HEAD~1       # 完全撤销最近一次 commit
git checkout -- .             # 丢弃工作区所有修改
git revert HEAD               # 创建一个新 commit 来撤销

# 分支操作
git branch -d feature-x       # 删除本地分支
git push origin --delete feat # 删除远程分支
git branch -m old new         # 重命名分支

# 合并策略
git merge --no-ff feature-x   # 保留分支历史的合并
git rebase main               # 变基到 main
git cherry-pick abc123        # 挑选特定 commit

五、Commit Message 规范

# 推荐格式
<type>(<scope>): <subject>

# type 类型
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式
refactor: 重构
test: 测试相关
chore: 构建/工具链

六、团队协作最佳实践

总结

Git 的精髓不在于记住命令,而在于理解它如何追踪文件变化。一旦理解了 Git 的 DAG(有向无环图)数据模型,merge、rebase、cherry-pick 这些操作就不再神秘。团队协作中,统一的分支策略和 commit 规范远比工具本身重要。


返回文章列表
标签:Git版本控制