版本命名
語義化版本(Semantic Versioning):
主版本號.次版本號.修訂號(MAJOR.MINOR.PATCH)
* 開發版 develop 主版本號.次版本號.修訂號-dev 例如:1.2.2-dev
* 預發布版 release 主版本號.次版本號.修訂號-beta 例如:1.2.2-beta
* 發布版 master 主版本號.次版本號.修訂號 例如:v1.2.2
分支命名策略
長期分支有兩個 master 和 develop
主分支 master:
負責記錄上線版本的迭代,該分支代碼與線上代碼是完全一致的。不允許隨意的往該分支合并代碼。
開發分支 develop:
該分支記錄相對穩定的版本,所有的feature分支都從該分支創建。
其它分支為短期分支,其完成功能開發之后需要刪除
特性(功能)分支 feature/*:
開發新的功能、完善已有功能、bug修復等日常開發任務使用特性分支,不同的功能創建不同的功能分支,功能分支開發完成并自測通過之后,需要合并到 develop 分支,之后刪除該分支。
預發布分支 release/*:
用于代碼上線準備,該分支從develop分支創建,創建之后由測試同學發布到測試環境進行測試,測試過程中發現bug需要開發人員在該release分支上進行bug修復,所有bug修復完后,在上線之前,需要合并該release分支到master分支和develop分支。
熱修復分支 hotfix/*:
緊急bug修復分支,該分支只有在緊急情況下使用,從master分支創建,用于緊急修復線上bug,修復完成后,需要合并該分支到master分支以便上線,同時需要再合并到develop分支。
工作流程
第一步
在github中創建一個新的倉庫,這時候項目是空的,而且只有一個master分支
第二步
第一個開發人員進來了,他在本地創建一個develop分支,并且提交到遠程
git branch develop
git push -u origin develop
現在線上就有兩個分支master 和 develop 現在這兩個分支里面都是空的
第三步
一、二步完成后,任何一個參與該項目的開發人員首先要做的就是從develop分支上切一個新分支進行功能開發
git checkout -b <本地分支名 feature/***> <origin/develop>
或者
git fetch origin 遠程分支名:本地分支名
git branch --set-upstream-to=origin/遠程分支名 本地分支名
然后進行開發,開發差不多,想提交一下
git status
git add
git commit
第四步
經過第三步,提交了幾次后,感覺差不多了,就可以合并到develop分支
git pull origin develop //先拉取develop中的代碼,因為有可能別人已經往上提交過代碼了
git checkout develop//切到develop分支
git merge <feature/**>//合并feature/**中的代碼到develop中
git push //提交到develop遠程分支上
git branch -d feature/** //刪除本地的分支
第五步
某一個開發人員想發布,但是其他人員還在進行開發,先不管別人,他先建立一個新的分支release-1.1.2-beta做發布準備,測試組介入測試,測試中發現問題,開發組在該分支進行修復,功能完善后將該分支合并到master和develop分支,刪除該分支
git checkout -b <本地分支名realse-0.1> <遠程分支名develop>
//注意這個realse-tagNo分支的功能是對發布的代碼進行改善的地方
創建這個分支相當于測試環境修改,改好后就需要更新master和develop,然后刪除分支
git checkout master//切到master分支
git merge release-0.1//將release分支合到master上
git push//將合完的代碼提交到遠程master
git checkout develop//切到develop分支
git merge release-01//將release分支上的代碼合到develop分支上
git push//合完的代碼推送到遠程的develop分支
git branch -d release-01//刪除本地release分支
第六步
線上環境發現bug了,從master分支檢出一個新分支hotfix/xxx,修改完成后測試組介入測試,如果測試發現bug,開發組在該分支修改,功能完善后合并代碼到master和develop分支,然后刪除該分支。
git checkout -b hotfix/xxx master//從master分支上新建分支
然后開始改bug,改完后
git checkout master//切回master分支
git merge hotfix/xxx//將改完bug后的代碼合并到master
git push
改完bug的代碼還要合到develop中
git checkout develop
git merge hotfic/xxx
git push
git branch -d hotfix/xxx