Git 的各種工作流程
常見(jiàn)的git工作流程
Centralized Workflow (集中式工作流)搁廓、Feature Branch Workflow(功能開(kāi)發(fā)工作流)切距、
Gitflow Workflow(Gitflow工作流)以及 Forking Workflow(Forking工作流)
1陌兑、集中式工作流
概念:這種工作方式跟svn類似蝙斜,它只有一個(gè)master分支简软,開(kāi)發(fā)者會(huì)先將遠(yuǎn)程的倉(cāng)庫(kù)的代碼克隆到本地射众,之后的修改和提交都在本地操作碟摆,直到某個(gè)合適的時(shí)間節(jié)點(diǎn)將本地代碼合入到遠(yuǎn)程master。
2叨橱、功能開(kāi)發(fā)工作流
概念: 這種工作流是基于master拉取feature分支典蜕,在feature分支上進(jìn)行功能開(kāi)發(fā),團(tuán)隊(duì)成員根據(jù)分工不同拉取不同的分支罗洗。當(dāng)功能開(kāi)發(fā)完畢之后代碼經(jīng)過(guò)審核測(cè)試愉舔,才允許合入master分支。當(dāng)代碼合入了master之后還出現(xiàn)了bug伙菜,這時(shí)候需要基于最新的master分支建立hotfix分支進(jìn)行代碼修復(fù)轩缤。
3、Gitflow工作流
概念: 這種工作流相對(duì)前面的工作流會(huì)復(fù)雜一些,master和develop分支是長(zhǎng)期存在的火的。master分支可以被視為穩(wěn)定的一個(gè)分支壶愤,develop分支是相對(duì)穩(wěn)定的分支,用于日常的開(kāi)發(fā)馏鹤,包括代碼的優(yōu)化等征椒。feature分支是基于develop分支拉取的,進(jìn)行一些新功能的開(kāi)發(fā)湃累。當(dāng)新功能開(kāi)發(fā)完畢之后勃救,會(huì)將feature分支合并到develop分支。release分支是基于develop分支拉取治力,當(dāng)作預(yù)發(fā)布版本的分支蒙秒,通常這個(gè)分支用于回歸測(cè)試。測(cè)試完畢之后會(huì)將該分支合入master和develop并打上tag宵统。hotfix分支用于緊急修復(fù)線上版本的問(wèn)題晕讲,修復(fù)后打上tag并合入master和develop分支。
4榜田、Forking工作流
概念:Forking工作流常用于開(kāi)源項(xiàng)目益兄,它有一個(gè)公開(kāi)的中央倉(cāng)庫(kù),其他代碼貢獻(xiàn)者可以通過(guò)Fork這個(gè)倉(cāng)庫(kù)作為自己的私有倉(cāng)庫(kù)箭券。開(kāi)源項(xiàng)目的維護(hù)者可以直接push代碼到中央倉(cāng)庫(kù)净捅,代碼貢獻(xiàn)者的pull request只有得到開(kāi)源項(xiàng)目的維護(hù)者才能合入到中央倉(cāng)庫(kù)。
5辩块、總結(jié)
在工作之中常用的兩種工作流方式就是:功能開(kāi)發(fā)工作流與Gitflow工作流蛔六。對(duì)于我個(gè)人而言,功能開(kāi)發(fā)工作流這個(gè)方式是更加簡(jiǎn)單實(shí)用废亭,也是目前工作中使用的工作流方式国章。而Gitflow工作流中的有些繁瑣,develop這個(gè)分支又有些多余豆村,不便于在公司內(nèi)部推廣液兽。