本系列所有文章都放在
Git标签,总目录如下:
3.0 本节命令行汇总
git init # 创建本地 Git 仓库git add <file> # 暂存指定文件git add . # 暂存所有变更文件git commit -m "message" # 提交变更git branch # 查看本地分支列表git branch -v # 查看本地分支列表(详细)git branch <branch-name> # 创建新分支git checkout <branch-name> # 切换到目标分支git checkout -b <branch-name> # 创建新分支并立即切换3.1 Git 分支的逻辑
注:本示意图来自B站
@寰宇牛奶unimilk的视频。
在开始动手操作之前,先理解 Git 分支的底层逻辑,有助于在合并、冲突处理等场景中保持清晰的思路。
1. 分支的本质是指针。
在 Git 中,分支不过是一个指向某个提交对象的指针。当执行git commit创建一个新的提交时,当前所在分支的指针会自动向前移动到新的提交上。
2. HEAD 是你的位置。
HEAD是一个特殊的指针,指向你当前所在的分支。执行git checkout切换分支时,实际上是在移动HEAD指针,告诉 Git 你当前在哪个分支上工作。
3. 提交历史是一张有向无环图。
Git 的提交记录不是简单的线性列表,而是一张有向无环图。每个提交都持有指向其父提交的指针,当从某个节点分叉出新的分支并提交后,历史就形成了分叉的图结构。
3.2 举例:简单分支开发流程
下面通过一个完整的例子,演示从创建仓库到多分支开发的完整流程。
场景:项目主分支
master已开发到Commit 3,现在需要开发 1.0 版本,因此从当前节点创建1.0-dev分支。
3.2.1 创建仓库并完成首次提交
先手动创建一个 README.md 文件并创建仓库。

git initgit add README.mdgit commit -m "first commit"初始状态下,HEAD指向master,master指向Commit 1。
此时提交历史:Commit 1(master, HEAD)
3.2.2 在 master 上多次提交
经过多次开发,master分支上共有三个提交,master指向最新的Commit 3。

# 两次开发提交git add .git commit -m "edit(readme): Commit 2"
git add .git commit -m "edit(readme): Commit 3"提交历史:Commit 1 ← Commit 2 ← Commit 3(master, HEAD)
3.2.3 创建新分支
基于当前HEAD指向的位置(即master的Commit 3),创建一个名为1.0-dev的新分支。
git branch 1.0-dev执行后,两个分支都指向同一个提交Commit 3。
3.2.4 切换到新分支
git checkout 1.0-devHEAD从master移动到1.0-dev,工作区切换到了开发分支上。

注:③、④两步可合并为
git checkout -b 1.0-dev,创建并切换一步到位。
3.2.5 在新分支上提交
在1.0-dev分支上完成功能开发后提交:
git add .git commit -m "edit(readme): Commit 4"此时1.0-dev向前移动到新的Commit 4,而master仍停留在Commit 3,历史出现分叉。

3.2.6 切换回 master
git checkout master切回master后,工作区文件恢复到Commit 3的状态,之前在新分支上做的修改暂时”隐藏”起来——这正是 Git 分支的隔离特性。

3.2.7 在 master 上继续开发
git add .git commit -m "edit(readme): Commit 5"master分支继续向前推进到Commit 5,与1.0-dev分支的差距进一步拉大。

3.2.8 切换到 1.0-dev 开发
切回开发分支,继续增加新功能:
git checkout 1.0-devgit add .git commit -m "edit(readme): Commit 6"1.0-dev分支推进到Commit 6。

此时提交历史结构如下:
C1 ← C2 ← C3 ← C5 (master) ↖ C4 ← C6 (1.0-dev, HEAD)1.0-dev分支的README.md内容:
# README
Commit 2
Commit 3
Commit 4
Commit 6master分支的README.md内容:
# README
Commit 2
Commit 3
Commit 53.3 命令行操作总结
3.3.1 查看分支列表
git branch列出所有本地分支,当前所在分支前会标记*号。
git branch -v加上-v参数可同时查看每个分支的最新提交信息。
3.3.2 创建分支
git branch <branch-name>基于当前HEAD所在位置创建一个新分支。
3.3.3 切换分支
git checkout <branch-name>将HEAD切换到目标分支。
3.3.4 创建并切换
git checkout -b <branch-name>创建新分支后立即切换过去,是git branch加git checkout两步的合并写法。
3.4 在 VS Code 中进行分支操作
VS Code 的源代码管理面板提供了直观的分支管理界面,无需记忆命令即可完成常见分支操作。
3.4.1 查看当前分支
在 VS Code 底部状态栏的左侧,可以看到当前所在的分支名称。点击分支名即可快速切换或创建分支。
3.4.2 创建新分支
- 点击底部状态栏左侧的分支名。
- 在弹出的命令面板中选择
创建新分支...。 - 输入新分支的名称,按回车确认。
3.4.3 切换分支
- 点击底部状态栏左侧的分支名。
- 在弹出的分支列表中,选择要切换到的目标分支。
- 工作区文件会自动更新为目标分支的内容。
3.4.4 在分支上提交
在源代码管理面板中,暂存文件 → 填写提交信息 → 点击提交按钮。当前处于哪个分支,提交就会自动推进到哪个分支,无需额外操作。
3.4.5 使用 Git Graph 查看分支图
安装Git Graph插件后,点击源代码管理面板底部的Git Graph按钮,即可看到直观的分支图谱,清晰地展示所有分支的提交历史与分叉关系。
3.5 本节小结
| 知识点 | 说明 |
|---|---|
| 分支本质 | 指向提交的指针 |
| HEAD | 指向当前所在分支的指针 |
| 创建分支 | git branch <name> 或 git checkout -b <name> |
| 切换分支 | git checkout <name> |
| 分支隔离 | 不同分支的文件状态互不干扰 |
| VS Code 操作 | 状态栏 → 分支名 → 创建 / 切换 |
在本节中,掌握了以下内容:
- 理解了 Git 分支的本质是指针,
HEAD代表当前位置 - 通过完整的分支开发例子,理清了创建、切换、提交的完整流程
- 掌握了命令行的分支操作命令
- 学会了在 VS Code 中通过图形界面管理分支
下一节我们将学习合并分支。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
