三種模式:
Git flow
Github flow
Gitlab flow
共同點:功能驅(qū)動式開發(fā),即需求是開發(fā)的起點,先有需求再有功能分支(feature branch)或者補丁分支(hotfix branch)。完成開發(fā)后,該分支就合并到主分支,然后被刪除。
Git flow:
長期分支:
主分支master
開發(fā)分支develop
短期分支:
功能分支(feature branch)
補丁分支(hotfix branch)
預(yù)發(fā)分支(release branch)
優(yōu)點:清晰可控
缺點:相對復(fù)雜,需要同時維護兩個長期分支。大多數(shù)工具都將master當(dāng)作默認(rèn)分支,可是開發(fā)是在develop分支進行的,這導(dǎo)致經(jīng)常要切換分支,非常煩人。
Github flow:
它只有一個長期分支,就是master
Gitlab flow:
對于"持續(xù)發(fā)布"的項目,它建議在master分支以外,再建立不同的環(huán)境分支。
比如,
"開發(fā)環(huán)境"的分支是master
"預(yù)發(fā)環(huán)境"的分支是pre-production
"生產(chǎn)環(huán)境"的分支是production
以上依次為上游到下游,代碼的變化,必須由"上游"向"下游"發(fā)展。