git项目根据不同需求进行独立开发
目前所在公司開發(fā)的系統(tǒng)為一個基礎(chǔ)版本(通用版)包含了行業(yè)內(nèi)一些基礎(chǔ)功能實現(xiàn),后期根據(jù)不同廠家進(jìn)行定制版的開發(fā),考慮獨立項目的話代碼維護(hù)不太方便,并且如果通用版本有變動的話,其他定制版本也都需要進(jìn)行變動。
gitflow工作流
公司之前采用svn進(jìn)行維護(hù)代碼,最近才開始進(jìn)行轉(zhuǎn)變到用git 進(jìn)行維護(hù),在學(xué)習(xí)的過程中對比了一番最終選擇采用gitflow工作流進(jìn)行管控, 具體介紹如下:
master分支:主分支,可隨時交付給用戶使用的版本
dev分支:開發(fā)分支,項目組內(nèi)用于開發(fā)的分支,并且保證該分支代碼是可運行
feature分支:功能分支,項目中開發(fā)新需求或者修改bug都在此分支上進(jìn)行。
release分支:測試分支,開發(fā)完成之后,基于dev創(chuàng)建該分支
hotfix分支:bug修復(fù)分支,用于修復(fù)bug,發(fā)現(xiàn)bug創(chuàng)建此分支進(jìn)行修復(fù),基于release或者master分支創(chuàng)建
由于現(xiàn)在處于開發(fā)階段故現(xiàn)在對分支的維護(hù)方面沒有那么完善,而且公司內(nèi)部沒有測試人員,現(xiàn)在的測試流程都是寫完代碼內(nèi)部自己進(jìn)行測試,現(xiàn)在進(jìn)行開發(fā)的時候一般都是基于dev分支創(chuàng)建feature分支:
創(chuàng)建feature分支以及合并方案
-
當(dāng)前處于dev分支或者release分支,基于dev或者release創(chuàng)建新分支
-
創(chuàng)建新功能分支并且切換到該分支,當(dāng)該功能開發(fā)完畢之后,如果該功能開發(fā)周期較長,每天從dev分支合并到功能分支上,避免跟dev分支差異較大
-
當(dāng)功能開發(fā)完成合并到dev或者release分支當(dāng)中,完成之后刪除本地分支,避免本地分支過多,分不清功能是否合并。
創(chuàng)建release分支以及合并方案
- 當(dāng)前處于dev分支當(dāng)中,基于dev分支創(chuàng)建release分支
- 創(chuàng)建該分支之后,進(jìn)行打包發(fā)布測試,如果測試當(dāng)中發(fā)現(xiàn)bug,創(chuàng)建hotfix分支,進(jìn)行修復(fù)bug,創(chuàng)建hotfix分支主要想的是多人開發(fā)過程中,發(fā)現(xiàn)那個模塊誰負(fù)責(zé),誰去修改bug
- 當(dāng)該分支測試完成之后合并到master和dev分支當(dāng)中
創(chuàng)建hotfix分支以及合并方案
- 當(dāng)前處于release分支或者master分支當(dāng)中
- 當(dāng)release分支發(fā)現(xiàn)bug之后,根據(jù)release分支創(chuàng)建該分支,進(jìn)行修復(fù)bug。
- 該分支修改完成之后如果是release的bug合并到release分支就可,如果是基于master分支創(chuàng)建的還需要合并到dev分支當(dāng)中
命名規(guī)則
分支命名方式采用如下規(guī)則例如: add_user_0302add:代表工作類型user代表具體功能模塊:user:具體的功能模塊0302:分支創(chuàng)建時間 復(fù)制代碼git注釋提交規(guī)范
注釋提交采用如下規(guī)則例如:[修復(fù)bug]:bug號1.修復(fù)的具體功能 復(fù)制代碼基于上述規(guī)范根據(jù)我們項目組的情況,創(chuàng)建了如下三個版本的分支結(jié)構(gòu)如下:
- master分支
- master-A分支
- master-B分支
master分支
基礎(chǔ)版本分支,開發(fā)一些通用功能(目前所有工作都是在此版本開發(fā))
master-A分支
基于通用版本生成的一個分支版本,根據(jù)A客戶提出的新需求進(jìn)行客制化的開發(fā)
master-B分支
基于通用版本生成的分支版本,根據(jù)B客戶提出的新需求進(jìn)行客制化開發(fā)
master分支維護(hù)
master版本維護(hù)分如以下:devrelease/hotfix/feature/ 復(fù)制代碼master-A/master-B維護(hù)
master-A或者master-B版本維護(hù)分支如下:dev-Arelease-A/hotfix-A/feature-A/ 復(fù)制代碼基礎(chǔ)版本同步方案
當(dāng)基礎(chǔ)版本有新功能開發(fā),或者是修復(fù)之前遺留的bug,開發(fā)完成之后,合并到其他master-A或者master-B分支當(dāng)中,避免重復(fù)開發(fā)帶來的時間成本。
開發(fā)注意事項
根據(jù)不同的業(yè)務(wù)創(chuàng)建分支的時候選擇創(chuàng)建不同的分支,例如master分支在進(jìn)行創(chuàng)建功能分支的時候應(yīng)該是:
- feature/add_user_0302
master-A創(chuàng)建功能分支應(yīng)該是:
- feature-A/add_user_0302
注:此方案目前只是一個規(guī)劃,如果您有更好的方案還請留言告知
轉(zhuǎn)載于:https://juejin.im/post/5c79cfa5e51d4506e27fe61f
總結(jié)
以上是生活随笔為你收集整理的git项目根据不同需求进行独立开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决在Android Studio 3.
- 下一篇: source 1.5 中不支持 diam