相關(guān)分支
1、 Master
顧名思義,既然名字叫Master惠桃,那么該分支就是主分支的意思。在git repo下主分支的職責(zé)主要就是負(fù)責(zé)記錄stable版本的迭代辖试,當(dāng)在beta版本的項(xiàng)目或是開發(fā)版本的項(xiàng)目得到了充分的驗(yàn)證之后辜王,我才能將分支并入master分支。master分支永遠(yuǎn)是production-ready的狀態(tài)罐孝,即穩(wěn)定可產(chǎn)品化發(fā)布的狀態(tài)呐馆。
2、Develop
這個(gè)分支就是我們平常開發(fā)的一個(gè)主要分支了莲兢,不管是要做新的feature還是需要做bug fix汹来,都是從這個(gè)分支分出來做。在這個(gè)分支下主要負(fù)責(zé)記錄開發(fā)狀態(tài)下相對穩(wěn)定的版本改艇,即完成了某個(gè)feature或者修復(fù)了某個(gè)bug后的開發(fā)穩(wěn)定版本收班。
3、Feature branches
這是由許多分別負(fù)責(zé)不同feature開發(fā)的分支組成的一個(gè)分支系列谒兄。new feature主要就在這個(gè)分支系列下進(jìn)行開發(fā)摔桦。當(dāng)我在一個(gè)大的develop的迭代之下,往往我們會把每一個(gè)迭代分成很多個(gè)功能點(diǎn),并將功能點(diǎn)分派給不同人的人員去開發(fā)邻耕。每一個(gè)人員開發(fā)的功能點(diǎn)就會形成一個(gè)feature分支鸥咖,當(dāng)功能點(diǎn)開發(fā)測試完畢之后,就會合并到develop分支去兄世。
分支管理策略
1啼辣、 準(zhǔn)備工作
從master上拉出develop分支
git checkout -b develop
如圖,當(dāng)前develop和master的head都指向同一個(gè)節(jié)點(diǎn)
2御滩、 功能點(diǎn)開發(fā)
假設(shè)現(xiàn)在有一個(gè)功能點(diǎn)鸥拧,指派給A同學(xué)進(jìn)行開發(fā)了。首先削解,他應(yīng)該從最新develop分支中拉出一個(gè)feature分支住涉,假設(shè)為該feature分支命名為feature1。
$ git checkout -b feature1
Switched to a new branch 'feature1'
$ git branch
develop
* feature1
master
于是钠绍,我們便創(chuàng)建并切換到了feature1分支舆声。
$ ls
1.txt 2.txt
$ echo "feature1" >> 1.txt
現(xiàn)在A同學(xué)開始了他的開發(fā),他將feature1寫入了1.txt柳爽,這樣他就完成了該功能點(diǎn)媳握。那么之后他應(yīng)該進(jìn)行commit,并提交QA進(jìn)行相應(yīng)的功能測試
$ git status
# On branch feature1
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: 1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git add -A
$ git commit -m 'feature1'
提交之后磷脯,我們可以很容易的看到當(dāng)前的一個(gè)分支節(jié)點(diǎn)網(wǎng)絡(luò)的情況蛾找,如圖。
A同學(xué)開發(fā)的feature1分支有了更新赵誓,已經(jīng)超前于develop分支打毛,因此我們現(xiàn)在需要對feature1分支進(jìn)行合并操作。
$ git checkout develop
Switched to branch 'develop'
$ git merge feature1
Updating 2ea6fb8..8d30443
Fast-forward
1.txt | 1 +
1 file changed, 1 insertion(+)
因?yàn)楫?dāng)前我們并沒有發(fā)生沖突俩功,所以develop分支的head只是單純的forward到了feature1分支的節(jié)點(diǎn)上幻枉。于是,我便完成了分支的合并诡蜓,當(dāng)前的分支網(wǎng)絡(luò)如下圖熬甫。
3、 處理沖突(略)