跳到主要内容

16 分支简介和基础操作

分支简介

在 Git 中,分支是一个非常重要的概念。分支允许你从主线分离出来,在不影响主线的情况下进行开发。通过分支,你可以轻松地管理不同的功能开发、修复 Bug 或实验性代码。

分支的核心思想是:每个分支都是一个独立的开发环境。你可以在分支上进行任何修改,而不会影响其他分支的代码。

为什么需要分支?

  • 并行开发:多个开发人员可以在不同的分支上同时工作。
  • 隔离功能:每个新功能或修复都可以在独立的分支上进行开发。
  • 代码回滚:如果某个分支的代码出现问题,可以轻松回滚到之前的状态。
  • 代码审查:通过分支提交代码后,可以进行代码审查,确保代码质量。

git switch

git switch <分支名>             # 切换到已有分支
git switch -c <新分支名> # 创建并切换到新分支(相当于 git checkout -b)
git switch -c <新分支名> <起点> # 从指定 commit/分支创建并切换
git switch --detach <提交ID> # 进入“游离 HEAD”状态
不同情况工作区暂存区版本库
工作区、暂存区干净被分支n覆盖被分支n覆盖切换到分支n
工作区、暂存区存在未提交内容,并且与分支n冲突xxx
工作区、暂存区存在未提交修改,可以与新分支合并保留保留切换到分支n

x:终止 git switch 命令。

git branch

创建分支

git branch 新分支名

切换分支

# 切换到已有分支
git checkout 分支名

# 创建并切换到新分支
git checkout -b 新分支名

查看分支

git branch 查看当前项目中所有分支:

testgit@zxzsk ~/test (nb)> git branch 
main
* nb

合并分支

当一个分支的开发完成后,可以将其合并到主分支(通常是 mainmaster

# 例如将 nb 分支合并到 main 分支:
git checkout main
git merge nb

删除分支

# 如果一个分支已经完成开发并被合并,可以删除该分支:
git branch -d 分支名

# 如果分支未被合并,强制删除可以使用:
git branch -D 分支名

查看分支历史

查看分支的提交历史:

git log --oneline --graph --all

这将以图形化的方式显示所有分支的提交历史。

* b45203d (main) 测试提交
| * 431032f (HEAD -> nb) 测试提交
| * a3a1954 测试提交
|/
* 82d514f (origin/main, origin/HEAD) 测试提交
* d1febb8 测试提交
* 9a4ee26 测试提交nb
* 307bf26 上传文件至 /
* 25f2d94 测试提交
* 41090c8 Initial commit