🌿 第七章:分支管理 —— 平行宇宙
分支是什么?
想象一下:你正在写小说,写到一半想试试让主角黑化。但你又不想破坏原来的故事线。怎么办?开一个"平行宇宙"——这就是分支。
在 Git 里,创建分支几乎不花任何成本(只是一个指针),但它的威力可大了:
- 每个功能可以独立开发,互不影响
- 实验性的代码可以放在分支上,搞砸了直接删掉
- 多个人可以同时开发不同的功能
- 主分支始终保持可运行状态
分支的基本操作
bash
# 查看所有分支
git branch
* main
# 创建新分支
git branch feature/用户登录
# 切换到新分支
git switch feature/用户登录
Switched to branch 'feature/用户登录'
# 创建并切换(一步到位!推荐!)
git switch -c feature/用户注册
Switched to a new branch 'feature/用户注册'
# 查看所有分支(包括远程分支)
git branch -a
* feature/用户注册
feature/用户登录
main
remotes/origin/main
# 查看每个分支的最后一次提交
git branch -v
* feature/用户注册 f4e5d6c feat: 添加欢迎语
feature/用户登录 f4e5d6c feat: 添加欢迎语
main f4e5d6c feat: 添加欢迎语1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
📝 备注: 旧版本的 Git 使用git checkout来切换分支。Git 2.23+ 引入了git switch(切换分支)和git restore(恢复文件),语义更清晰。git checkout仍然可用,但它同时承担了太多职责(切换分支 + 恢复文件 + 创建分支),容易让人困惑。
分支命名规范
好的分支名就像好的文件名——一看就知道是干什么的。
bash
# 推荐的命名格式:<类型>/<描述>
# ✅ 好的命名
feature/用户登录
feature/商品搜索
bugfix/修复登录超时
hotfix/修复支付漏洞
release/v1.2.0
experiment/新首页设计
# ❌ 不好的命名
git branch test
git branch my-branch
git branch fix
git branch temp
git branch aaa1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
删除分支
bash
# 功能开发完成后,删除分支
git switch main
git branch -d feature/用户登录
Deleted branch feature/用户登录 (was b2c3d4e).
# 如果分支还没合并,Git 会阻止删除
git branch -d feature/用户注册
error: The branch 'feature/用户注册' is not fully merged.
If you are sure you want to delete it, run 'git branch -D'.
# 强制删除(你确定不要了?)
git branch -D feature/用户注册
Deleted branch feature/用户注册 (was f4e5d6c).1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
💡 提示: -d(小写)是安全删除,只有已合并的分支才能删。-D(大写)是强制删除。就像门锁——-d是普通锁,-D是把门踹开。