一.創(chuàng)建與合并分支:
1.分支概念:
每次提交,Git都把它們串成一條時間線,這條時間線就是一個分支。
我們經(jīng)常用的分支稱為主分支:master
HEAD其實(shí)就是指向master,master才是指向提交的,所以,HEAD指向的就是當(dāng)前分支。

2.創(chuàng)建分支:
(方式1).git checkout -b huan創(chuàng)建一個huan的分支并且切換到該分支。
(方式2.)git branch huan創(chuàng)建分支。git checkout huan切換到該分支



3.查看當(dāng)前分支
用git branch命令查看當(dāng)前分支

注:列出所有分支,在當(dāng)前分支前用*標(biāo)記
4.合并當(dāng)指定支到主分支
git merge huan


5.刪除指定分支
git branch -d huan

二.解決沖突
1.創(chuàng)建新的分支 并且修改222.txt文件內(nèi)容:
我在mahuan fenzhi提交的修改后進(jìn)行git add .git commit -m"在mahuan分支提交"


2.切換回主分支,然后再修改222.txt文件內(nèi)容:
我是在master分支創(chuàng)建的修改后進(jìn)行git add .git commit -m"我是在master上面提交的"


3.嘗試合并mahuan分支到master分支上
git merge mahuan(失敗有沖突)

4.查看文件
cat 222.txt并進(jìn)行修改文件vi 222.txt修改后進(jìn)行git add .git commit -m"修改沖突之后"


5.可以看到分支合并圖。
1.git log --graph --pretty=oneline --abbrev-commit

2.
git log --graph

三分支管理策略:
通常,合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息。
如果要強(qiáng)制禁用Fast forward模式(--no-ff),Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。
.
1.首先創(chuàng)建新的分支:
git checkout -b mahuan修改新的分支內(nèi)容提交后
2.然后在返回到master分支 禁用Fast forward模式合并mahuan分支git merge --no-ff -m"小李合并分支" mahuan
3.最后查看日志:git log --graph --pretty=oneline --abbrev-commit

注:合并分支時,加上
--no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支,能看出來曾經(jīng)做過合并,而fast forward合并就看不出來曾經(jīng)做過合并。
在實(shí)際開發(fā)中,我們應(yīng)該按照幾個基本原則進(jìn)行分支管理:
1.首先,master分支應(yīng)該是非常穩(wěn)定的,也就是僅用來發(fā)布新版本,平時不能在上面干活;
2.那在哪干活呢?干活都在dev分支上,也就是說,dev分支是不穩(wěn)定的,到某個時候,比如1.0版本發(fā)布時,再把dev分支合并到master上,在master分支發(fā)布1.0版本;
3.你和你的小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合并就可以了。

.
上文接:Git進(jìn)階學(xué)習(xí)常用命令--學(xué)習(xí)筆記