第 5 章:平行宇宙——分支的魔法
约 860 字大约 3 分钟
2025-12-25
本章目标
理解 Git 最强大的功能——分支(Branch),学会如何在不影响主线的情况下开发新功能。
一、 🌌 什么是分支?
想象你在写一本小说:
- 主线(main 分支):是正式出版的故事线。
- 分支(feature 分支):你突然有个脑洞,想写一个“主角黑化”的番外篇。
你可以在“番外篇”里随意发挥,把主角写死都行。
- 如果写得好,你可以把它**合并(Merge)**回主线。
- 如果写得不好,直接把这个分支删掉,主线剧情完全不受影响。
这就是分支的意义:隔离开发,互不干扰。
技术内幕:为什么 Git 分支这么快?
如果你用过 SVN,你可能会害怕创建分支,因为在 SVN 里,创建分支意味着要把整个项目的文件复制一份,既慢又占空间。
但在 Git 里,创建分支瞬间完成,无论你的项目有 10MB 还是 10GB。 为什么? 因为 Git 的分支本质上只是一个包含 41 个字节的文件! 这个文件里只存了一个 Commit ID(指针)。当你创建新分支时,Git 只是新建了一个 41 字节的文件,指向当前的提交。就这么简单。
这就是为什么 Git 鼓励你疯狂地使用分支——因为它真的太便宜了!
二、 🌿 分支操作实战
2.1 查看分支
git branch- 前面带
*的表示你当前所在的分支(通常默认是main或master)。
2.2 创建并切换分支
假设我们要开发一个新功能,叫 login(登录)。
# 创建并切换到 login 分支
git checkout -b login
# 上面这条命令相当于下面两条:
# git branch login (创建)
# git checkout login (切换)现在,你已经处于 login 平行宇宙了!
2.3 在分支上搞事情
- 在
login分支下,新建一个login.txt文件。 git add .git commit -m "完成了登录功能"
此时,你的 login 分支比 main 分支多了一个提交。
2.4 切换回主线
git checkout main快去看看你的文件夹!login.txt 消失了! 别怕,它还在 login 分支里,只是 main 分支不知道它的存在而已。这就是隔离。
2.5 合并分支(Merge)
你觉得 login 功能做得很好,想把它加到主线里。 确保你现在在 main 分支上,然后输入:
git merge loginGit 会告诉你 Fast-forward(快进模式)。 再看看文件夹,login.txt 回来了!🎉
2.6 删除分支
login 分支的使命完成了,可以删掉了:
git branch -d login三、 ⚔️ 解决冲突(Conflict)
这是新手最害怕的环节。
什么时候会冲突? 当你在 main 分支改了文件 A 的第 1 行,同时在 dev 分支也改了文件 A 的第 1 行。 Git 懵了:“大哥,两边都改了,我听谁的?”
怎么解决?
- Git 会在文件里标记出冲突的地方(用
<<<<<<<,=======,>>>>>>>)。 - 手动打开文件,决定保留哪部分代码,或者两个都留,把奇怪的符号删掉。
- 保存文件。
git add .git commit -m "解决了冲突"
心态
遇到冲突不要慌,这说明你和队友(或者另一个你)都很勤奋。手动修好它,是程序员的必修课。