Git 分支基础概念

分支是 Git 中最强大的功能之一,它允许你在不影响主线开发的情况下进行并行开发。本节将帮助你深入理解分支的概念和应用。

学习目标

  • 理解 Git 分支的本质和工作原理
  • 掌握不同类型分支的使用场景
  • 学习分支的最佳实践和命名规范
  • 熟悉分支管理的基本操作

什么是分支?

分支本质上是指向提交对象的可变指针。Git 的默认分支是 main(或 master),它会在每次提交时自动向前移动。

分支的特点

  1. 轻量级

    • 创建和切换分支几乎瞬间完成
    • 不需要复制整个代码库
  2. 灵活性

    • 可以随时创建和删除
    • 支持多分支并行开发
  3. 独立性

    • 各分支互不影响
    • 可以独立提交和管理

分支的类型

1. 主分支(main/master)

  • 存储正式发布的历史
  • 包含稳定的代码
  • 通常受保护,需要审查才能合并

2. 功能分支(feature)

  • 用于开发新功能
  • 从主分支创建
  • 完成后合并回主分支

3. 修复分支(hotfix)

  • 用于修复生产环境的问题
  • 从主分支创建
  • 修复后合并回主分支

4. 发布分支(release)

  • 用于版本发布准备
  • 包含版本相关的修改
  • 同时合并到主分支和开发分支

分支的工作原理

HEAD 指针

  • 指向当前工作的分支
  • 随分支切换而移动
  • 可以直接指向提交

分支指针

  • 指向最新的提交
  • 随新提交自动前移
  • 可以手动移动(reset)

分支的使用场景

1. 功能开发

# 创建并切换到功能分支
git checkout -b feature/user-login

# 开发完成后合并
git checkout main
git merge feature/user-login

2. Bug 修复

# 创建修复分支
git checkout -b hotfix/login-bug

# 修复完成后合并
git checkout main
git merge hotfix/login-bug

3. 版本管理

# 创建发布分支
git checkout -b release/v1.0.0

# 版本准备完成后合并
git checkout main
git merge release/v1.0.0

分支命名规范

1. 功能分支

feature/user-login
feature/shopping-cart

2. 修复分支

hotfix/login-bug
bugfix/payment-issue

3. 发布分支

release/v1.0.0
release/v2.1.0

最佳实践

  1. 分支命名

    • 使用有意义的描述性名称
    • 遵循团队约定的前缀
    • 使用连字符分隔单词
  2. 分支管理

    • 及时删除已合并的分支
    • 定期同步主分支的更新
    • 避免分支存在时间过长
  3. 合并策略

    • 使用 Pull Request 进行代码审查
    • 解决冲突时保持代码质量
    • 合并后验证功能完整性