2 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
理解并合理使用git各種分支,便可實(shí)現(xiàn)高可用的商用開(kāi)發(fā)模式。
Git 在整個(gè)開(kāi)發(fā)周期會(huì)保持兩個(gè)“并行”的主要分支:
①origin/master:該分支的源碼HEAD始終指向可立即用于生產(chǎn)環(huán)境的狀態(tài);
②origin/develop:該分支的源碼HEAD總是反映下一個(gè)版本的最新開(kāi)發(fā)狀況。也可以叫它”整合分支“,從它開(kāi)始每日的構(gòu)建;
# 輔助分支 的使用
除了master和develop兩個(gè)主分支外,我們還需要其他輔助分支去完成并行開(kāi)發(fā)、版本發(fā)布、快速修復(fù)生產(chǎn)環(huán)境Bug等操作,這些輔助分支的生命周期較短,通常在完成任務(wù)后立即被刪除。
①feature分支(功能分支):
從develop檢出:
shell> git checkout -b feature-xxx develop
完成功能后應(yīng)該立即合并入develop分支,以確保功能被合并到即將發(fā)布的版本之中:
shell> git checkout develop shell> git merge --no-ff feature-xxx
* --no-ff 將在分支合并時(shí)創(chuàng)建新的提交對(duì)象,即使本次合并可以使用 fast-forward 提交。這可以避免丟失功能分支的歷史信息,把所有功能疊加提交入分支;
②release分支(發(fā)布分支):
從develop分支檢出
shell> git checkout -b release-*.* develop // *.*為版本號(hào)
這個(gè)分支主要用于 追求一些細(xì)節(jié)修改、小Bug修復(fù)以及發(fā)布版本的數(shù)據(jù)修改等,該分支不能用于大功能的開(kāi)發(fā),在版本發(fā)布完成之后合并回develop分支并清除。
# 發(fā)布進(jìn) mastershell> git checkout master shell> git merge --no-ff release-*.* shell> git tag -a *.*# 合并回 developshell> git checkout develop shell> git merge --no-ff release-*.*
③hotfix分支(熱修復(fù)分支):
該分支可能從master分支檢出,其本質(zhì)是用于對(duì)生產(chǎn)版本進(jìn)行快速修復(fù)。由于develop分支上的開(kāi)發(fā)還不足夠穩(wěn)定,無(wú)法并入生產(chǎn)版本,衍生出熱修復(fù)分支來(lái)解決問(wèn)題
shell> git checkout -b hotfix-*.* master
在完成Bug修復(fù)之后,該分支需要合并回 master 和 develop 分支,以保證下一個(gè)版本中也修復(fù)了該Bug。操作與發(fā)布分支相似
# 合并入 mastershell> git checkout master shell> git merge --no-ff hotfix-*.* shell> git tag -a *.*.*# 合并入 developshell> git checkout develop shell> git merge --no-ff hotfix-*.*
- 2 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)