最穩(wěn)定的代碼放在
master
分支上(相當于 SVN 的 trunk 分支)痕囱,我們不要直接在master
分支上提交代碼抱慌,只能在該分支上進行代碼合并操作,例如將其它分支的代碼合并到master
分支上。我們?nèi)粘i_發(fā)中的 代碼需要從
master
分支拉一條develop
分支出來边琉,該分支所有人都能訪問,但一般情況下记劝,我們也不會直接在該分支上提交代碼变姨,代碼同樣是從其它分支合并到develop
分支上去。當我們需要開發(fā)某個特性時厌丑,需要 從
develop
分支拉出一條feature
分支定欧,例如feature-name1
與feature-name2
,在這些分支上并行地開發(fā)具體特性蹄衷。當特性開發(fā)完畢后,我們決定需要發(fā)布某個版本了厘肮,此時需要從
develop
分支上拉出一條qa
分支愧口,例如qa-name1-name2
,并將需要發(fā)布的特性從相關(guān)feature
分支一同合并到qa
分支上类茂,隨后將針對qa
分支部署測試環(huán)境耍属,測試工程師在該分支上做功能測試,開發(fā)工程師在該分支上修改 bug
巩检。待測試工程師無法找到任何 bug 時厚骗,我們可繼續(xù)從
master
分支拉出一條release
分支,此時release的版本號必須根據(jù)master的tag版本號來遞增兢哭,遞增規(guī)則參見下面版本號規(guī)范
领舰,例如release1.0.0
,并將qa-name1-name2
分支合并到release1.0.0
迟螺,并部署到預發(fā)環(huán)境冲秽,再次驗證以后,均無任何 bug矩父,此時可將release
分支部署到生產(chǎn)環(huán)境锉桑。待上線完成后,將
release
分支上的代碼同時合并到develop
分支與master
分支窍株,并在master
分支上打一個tag
民轴,例如v1.0.0
。當生產(chǎn)環(huán)境發(fā)現(xiàn) bug 時球订,我們需要從對應的
tag
上(例如v1.0.0
)拉出一條hotfix
分支(例如hotfix1.0.1
)后裸,并在該分支上做 bug 修復。待 bug 完全修復后冒滩,需將hotfix
分支上的代碼同時合并到develop
分支與master
分支轻抱。最后,在master
分支打tag
(例如v1.0.1
)旦部。
對于版本號規(guī)范:
格式為:x.y.z祈搜,其中较店,x 用于有重大重構(gòu)時才會升級,y 用于有新的特性發(fā)布時才會升級容燕,z 用于修改了某個 bug 后才會升級梁呈。
使用GIT管理代碼應該遵循以下規(guī)范:
- 上傳內(nèi)容:
保證GIT上保存的是“干凈”的代碼,不得有編譯后再次生成的代碼
蘸秘,如Java字節(jié)碼文件和JSP生成文件官卡,也不能有IDE生成文件; - 上傳注釋:
必須加簡要的注釋醋虏,注釋的內(nèi)容應包含開發(fā)的模塊名稱以及功能描述
寻咒;功能提交:[模塊名稱]功能描述,如:[用戶模塊]用戶列表增加手機號字段顯示颈嚼;
Bug Fix:[模塊名稱]Bug-編號:Bug描述毛秘,如:[用戶模塊]Bug-1203:用戶創(chuàng)建保存失敗已修復; - 上傳質(zhì)量:
提交和合并到分支上的代碼盡量保證是自己測試通過的代碼
阻课,以免影響別的項目/同事叫挟;