<meta charset="utf-8">
master:這個(gè)分支最為穩(wěn)定,這個(gè)分支代表項(xiàng)目處于可發(fā)布的狀態(tài),用于版本發(fā)布。
例如王二狗向master分支合并了代碼,那就意味著王二狗完成了此項(xiàng)目的一個(gè)待發(fā)布的版本,項(xiàng)目經(jīng)理可以認(rèn)為,此項(xiàng)目已經(jīng)準(zhǔn)備好發(fā)布新版本了。所以master分支不是隨隨便便就可以簽入代碼的地方,只有計(jì)劃發(fā)布的版本功能在develop分支上全部完成,而且測試沒有問題了才會(huì)合并到master上。
develop:作為開發(fā)的分支,平行于master分支。
ers
例如王二狗要開發(fā)一個(gè)注冊(cè)功能,那么他就會(huì)從develop分支上創(chuàng)建一個(gè)feature分支 fb-register(后面講),在fb-register分支上將注冊(cè)功能完成后,將代碼合并到develop分支上。這個(gè)fb-register就完成了它的使命,可以刪除了。項(xiàng)目經(jīng)理看王二狗效率很高啊,于是:“二狗你順帶把登錄功能也做了吧”。二狗心中暗暗罵道:日了個(gè)狗的,但是任務(wù)還的正常做,二狗就會(huì)重復(fù)上面的步驟:從develop分支上新創(chuàng)建一個(gè)名為fb-login的分支,喝杯咖啡繼續(xù)開發(fā),1個(gè)小時(shí)后登錄功能寫好了,二狗又會(huì)將這個(gè)分支的代碼合并回develop分支后將其刪除。
將Develop分支發(fā)布到Master分支的命令:
# 切換到Master分支
git checkout master
# 對(duì)Develop分支進(jìn)行合并
git merge --no-ff develop
--no-ff參數(shù)是什么意思。默認(rèn)情況下,Git執(zhí)行"快進(jìn)式合并"(fast-farward merge),會(huì)直接將Master分支指向Develop分支。使用--no-ff參數(shù)后,會(huì)執(zhí)行正常合并,在Master分支上生成一個(gè)新節(jié)點(diǎn)。


四、 功能分支
接下來,一個(gè)個(gè)來看這三種"臨時(shí)性分支"。
第一種是功能分支,它是為了開發(fā)某種特定功能,從Develop分支上面分出來的。開發(fā)完成后,要再并入Develop。
[圖片上傳失敗...(image-49ba89-1585552367377)]
功能分支的名字,可以采用feature-*的形式命名。
創(chuàng)建一個(gè)功能分支:
git checkout -b feature-x develop
開發(fā)完成后,將功能分支合并到develop分支:
git checkout develop
git merge --no-ff feature-x
刪除feature分支:
git branch -d feature-x
五、預(yù)發(fā)布分支
第二種是預(yù)發(fā)布分支,它是指發(fā)布正式版本之前(即合并到Master分支之前),我們可能需要有一個(gè)預(yù)發(fā)布的版本進(jìn)行測試。
預(yù)發(fā)布分支是從Develop分支上面分出來的,預(yù)發(fā)布結(jié)束以后,必須合并進(jìn)Develop和Master分支。它的命名,可以采用release-*的形式。
創(chuàng)建一個(gè)預(yù)發(fā)布分支:
git checkout -b release-1.2 develop
確認(rèn)沒有問題后,合并到master分支:
git checkout master
git merge --no-ff release-1.2
# 對(duì)合并生成的新節(jié)點(diǎn),做一個(gè)標(biāo)簽
git tag -a 1.2
再合并到develop分支:
git checkout develop
git merge --no-ff release-1.2
最后,刪除預(yù)發(fā)布分支:
git branch -d release-1.2
六、修補(bǔ)bug分支
最后一種是修補(bǔ)bug分支。軟件正式發(fā)布以后,難免會(huì)出現(xiàn)bug。這時(shí)就需要?jiǎng)?chuàng)建一個(gè)分支,進(jìn)行bug修補(bǔ)。
修補(bǔ)bug分支是從Master分支上面分出來的。修補(bǔ)結(jié)束以后,再合并進(jìn)Master和Develop分支。它的命名,可以采用fixbug-*的形式。
[圖片上傳失敗...(image-4846fe-1585552367377)]
創(chuàng)建一個(gè)修補(bǔ)bug分支:
git checkout -b fixbug-0.1 master
修補(bǔ)結(jié)束后,合并到master分支:
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
再合并到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1
最后,刪除"修補(bǔ)bug分支":
git branch -d fixbug-0.1