目录
- 1.理解分支
- 2.创建分支
- 3.切换分支
- 4.合并分支
- 5.删除分支
1.理解分支
- 感性理解:分支可以理解为平行宇宙,但是在用户需要的时候,可以将两个平行宇宙合并,此时两个平行宇宙的效果将会"叠加"
- 理性理解:每次提交,Git都会把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀ 
  - 截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀
 
- 截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即
- HEAD理解:- HEAD严格来说不是指向提交,⽽是指向- master,- master才是指向提交的- 所以HEAD指向的就是当前分⽀
- 每次提交,master分⽀都会向前移动⼀步- 随着用户不断提交,master分⽀的线也越来越⻓
- ⽽HEAD只要⼀直指向master分⽀即可指向当前分⽀
  
 
- 随着用户不断提交,
 
- 所以
2.创建分支
- 查看分支:git branch- *表示当前- HEAD指向的分支
 $ git branch * master
- 创建分支:git branch branch_name- 创建好分支之后,Git将会新创建一个指针
- 此时新创建的指针和master指向同一个修改,即同一个版本
 $ git branch dev $ git branch dev * master 
3.切换分支
-  切换分支: git checkout branch_name
-  将创建分支和切换分支合二为一的命令: git checkout -b branch_name$ git checkout dev Switched to branch 'dev' $ git branch * dev master 
-  切换到新的分支后,如果进行独立于的 master分支的修改,并进行提交- 现象:新的分支有的内容,在master分支里并不存在
- 原因:两分支指向的提交已经不一样了$ cat .git/refs/heads/master 13204498006394d6067fbc8b6046885c6e5e9649 $ cat .git/refs/heads/dev 8ef34a28afd16a7c6f3ad43f136212850205bb22 
 
- 现象:新的分支有的内容,在
4.合并分支
- 如果要在master分支上能看到最新的提交,就需要将新的分支合并到master分支
- 合并分支:git merge branch_name- 此处的Fast-forward表示快进模式- 即:直接将master指向新分支的当前提交,所以该种合并方式下速度非常快
 
- 即:直接将
- 但并不是每次合并都能Fast-forward
 $ git branch dev * master $ git merge dev Updating 1320449..8ef34a2 Fast-forward dev.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 dev.txt 
- 此处的
5.删除分支
-  合并完成后, dev分⽀对于用户来说就没⽤了,那么dev分⽀就可以被删除掉
-  删除分支: git branch -d branch_name- 注意:如果当前正处于某分⽀下,就不能删除当前分⽀,需要切换到其他分支再删除
  
 
- 注意:如果当前正处于某分⽀下,就不能删除当前分⽀,需要切换到其他分支再删除
-  因为创建、合并和删除分⽀⾮常快,所以Git⿎励用户使⽤分⽀完成某个任务,合并后再删掉分⽀,这和直接在master分⽀上⼯作效果是⼀样的,但过程更安全 



















