Gitflow工作流沒有用超出功能分支工作流的概念和命令耻涛,而是為不同的分支分配一個很明確的角色,并定義分支之間如何和什么時候進行交互澈蟆。除了使用功能分支卓研,在做準備、維護和記錄發(fā)布也使用各自的分支寥闪。當然你可以用上功能分支工作流所有的好處:Pull Requests
磨淌、隔離實驗性開發(fā)和更高效的協(xié)作。
工作方式
Gitflow工作流仍然用中央倉庫作為所有開發(fā)者的交互中心柜某。和其它的工作流一樣,開發(fā)者在本地工作并push分支到要中央倉庫中喂击。
歷史分支
相對使用僅有的一個master分支,Gitflow工作流使用2個分支來記錄項目的歷史佩谷。
master分支存儲了正式發(fā)布的歷史监嗜,
而develop分支作為功能的集成分支。
這樣也方便master分支上的所有提交分配一個版本號桐猬。
剩下要說明的問題圍繞著這2個分支的區(qū)別展開溃肪。
功能分支
功能分支不是從master分支上拉出新分支,而是使用develop
分支作為父分支惫撰。
當新功能完成時躺涝,合并回develop分支。新功能提交應該從不直接與master分支交互坚嗜。
注意,從各種含義和目的上來看棍郎,功能分支加上develop分支就是功能分支工作流的用法银室。但Gitflow工作流沒有在這里止步。
發(fā)布分支
一旦develop分支上有了做一次發(fā)布(或者說快到了既定的發(fā)布日)的足夠功能辜荠,就從develop分支上fork一個發(fā)布分支抓狭。新建的分支用于開始發(fā)布循環(huán),所以從這個時間點開始之后新的功能不能再加到這個分支上 —— 這個分支只應該做Bug修復午笛、文檔生成和其它面向發(fā)布任務。一旦對外發(fā)布的工作都完成了药磺,發(fā)布分支合并到master分支并分配一個版本號打好Tag。另外木缝,這些從新建發(fā)布分支以來的做的修改要合并回develop
分支围辙。
第一,發(fā)布分支(release),是從develop分支創(chuàng)建的一個新分支矫俺。
第二桥胞, 這個分支只應該做Bug修復、文檔生成和其它面向發(fā)布任務贩虾。
第三缎罢,一旦對外發(fā)布的工作都完成了考杉,發(fā)布分支合并到master分支并分配一個版本號打好Tag。
第四崇棠,從新建發(fā)布分支以來的做的修改要合并回develop分支。
轉(zhuǎn)載地址:
http://blog.jobbole.com/76867/