Git 的分支(Branch)功能是其最强大的特性之一,它允许开发者在不同的分支上进行独立的开发,而不会影响主分支。分支管理使得 Git 在团队协作和版本控制方面更加高效。本章将介绍 Git 分支的概念、创建和删除分支、分支合并、检出分支、分离 HEAD 状态等内容。

8.1 使用分支的原因

分支的主要作用是提供一个独立的环境来进行开发,而不会影响主分支(通常是 mainmaster)。使用分支的主要原因包括:

  • 并行开发:不同功能的开发人员可以在不同的分支上工作,而不会干扰其他人的工作。
  • Bug 修复:可以在一个新分支上修复 Bug,并在测试通过后合并到主分支。
  • 代码管理:在代码合并之前,可以在分支上进行代码审查,确保质量。
  • 试验性开发:可以创建实验性分支进行尝试,而不影响主分支的稳定性。

8.2 分支名

在 Git 中,分支名是一个指向某个提交的标签。默认情况下,Git 仓库在初始化时会创建一个名为 main(或 master)的主分支。

查看当前所在的分支:

  1. git branch

创建一个新分支 feature-branch

  1. git branch feature-branch

切换到该分支:

  1. git checkout feature-branch

8.3 使用分支

Git 的分支非常轻量级,创建和切换分支的速度非常快。通常的分支使用流程如下:

  1. 创建分支:git branch new-feature
  2. 切换到该分支:git checkout new-feature
  3. 进行开发并提交:git commit -m "实现新功能"
  4. 合并回主分支:git checkout main,然后 git merge new-feature
  5. 删除该分支(如果不再需要):git branch -d new-feature

8.4 创建分支

使用 git branch 命令可以创建一个新分支,但不会自动切换到该分支:

  1. git branch new-feature

如果要创建并切换到该分支,可以使用 git checkout -b

  1. git checkout -b new-feature

Git 也提供了 git switch 命令(Git 2.23+):

  1. git switch -c new-feature

8.5 列出分支名

要查看本地所有分支,可以使用:

  1. git branch

要查看远程分支(已推送到远程的分支):

  1. git branch -r

查看所有分支(本地和远程):

  1. git branch -a

8.6 查看分支

查看当前分支的最后一次提交:

  1. git log --oneline --decorate --graph --all

查看某个特定分支的提交记录:

  1. git log branch-name

8.7 检出分支

检出(Checkout)分支意味着切换到另一个分支进行开发。

8.7.1 检出分支的一个简单例子

切换到已有分支:

  1. git checkout feature-branch

8.7.2 有未提交的更改时进行检出

如果当前分支有未提交的更改,Git 会阻止切换分支,可以使用 git stash 暂存更改:

  1. git stash
  2. git checkout other-branch

然后在新分支恢复更改:

  1. git stash pop

8.7.3 合并更改到不同分支

如果希望把当前分支的更改带到新分支,可以使用 git cherry-pickgit rebase

  1. git cherry-pick <commit-hash>

8.7.4 创建并检出新分支

  1. git checkout -b new-feature

8.7.5 分离 HEAD 分支

Git 允许进入 “分离 HEAD(detached HEAD)” 模式,以便在特定的提交上进行操作,而不影响任何分支。

  1. git checkout <commit-hash>

此时,HEAD 将指向该提交,而不是某个分支。如果希望保存修改,需要创建一个新分支:

  1. git checkout -b temp-branch

8.8 删除分支

删除本地分支:

  1. git branch -d feature-branch

如果分支未合并,需要强制删除:

  1. git branch -D feature-branch

删除远程分支:

  1. git push origin --delete feature-branch

结论

本章介绍了 Git 分支的基本概念,包括创建、切换、查看、检出和删除分支的方式。分支管理是 Git 的核心功能之一,掌握分支操作对于高效开发和团队协作至关重要。