1. 分支
在 Git 中,分支(Branch)是用于在项目中创建独立开发线路的机制。分支使得开发者可以在不影响主干(main 或 master)的情况下进行实验、开发新功能或修复 Bug。
举个例子:
分⽀就好像是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习 C++ 的时候,另⼀个你正在另⼀个平⾏宇宙⾥ 努⼒学习 Python。
如果两个平⾏宇宙互不⼲扰,那对现在的你也没啥影响。不过,在某个时间点,两个平⾏宇宙合并了,结果,你既学会了 C++ ⼜学会了 Python!
现实世界,在Git分支对应得就是主分支,而平行时间,在Git里面对应得就是新创建得另一个分支。
在Git中,每进行一次提交(commit操作),Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。如果只有一条分支,在Git里,这个分支就是主分支,即master分支。
而HEAD,HEAD 严格来说不是指向提交,⽽是指向master,master才是指向提交的,所以,HEAD 指向的就是当前分⽀。
每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓,⽽ HEAD只要⼀直指向master分⽀即可指向当前分⽀
1.1 创建分支
Git ⽀持我们查看或创建其他分⽀,在这⾥我们来创建第⼀个⾃⼰的分⽀ dev ,对应的命令为:
git branch 分支名
使用示例
- 创建dev分支
git branch dev
然后使用git branch
可以查看所有分支。
当我们创建新的分⽀后,Git 新建了⼀个指针叫 dev
, * 表⽰当前 HEAD 指向的分⽀是 master
分⽀。另外,可以通过⽬录结构发现,新的 dev
分⽀和 master
指向同⼀个提交。
图解:
1.2 切换分支
使用 git checkout 分支名
命令切换到指定分支。
使用示例
比如切换到dev分支。
git checkout dev
切换到dev分支后,就可以看到*在dev分支前,表明当前分支是dev分支。
切换分支后,HEAD就指向到切换得分支下面了。
可以使用cat .git/HEAD
进行验证
切换分支后,在dev分支下进行操作,比如新建一个文件test.txt
,然后向其进行随便写入一些东西。
写入完成后,在dev分支下面进行一次提交操作
git add .
git commit