為了規範**庫分支管理
和版本管理,使**分支及版本結構清晰,方便維護,並避免由於維護造成的錯誤的版本發布等問題。
通常每個應用的**將包括
master
、develop
、release
、hotfix
、feature
分支,release
、hotfix
、feature
分支的命名規則分別為:release-*,hotfix-*,feature-* 。
整體流程圖
分支型別
持久分支
需要持久存在的分支。
主分支,穩定**,隨時可供在生產環境中部署。每次**發布後必需合併到
master
分支,並且每次發布都要打上對應的版本號標籤(
tag)。
開發分支,為開發服務,儲存最新的開發成果。
非持久分支
開發完成,並合併/上線後,需要清理的分支。
發布分支,供測試使用,儲存將要發布的版本。release分支上**允許做小的缺陷修正,發布完後合併到
master
,develop
分支。bug修復分支 ,由master派生,修改完後要合併回master,develop分支。
功能分支,由develop派生,必需合併回develop分支。
操作規則
操作流程
開發新功能
開發階段:
1. 從develop分支建立功能分支:
gitcheckout -b feature-20170831-sms develop
2. 開發完成並自測沒問題後,切換到develop分支,並將功能分支**合併到develop並推至遠端。
git checkout develop
git merge --no-ff feature-sms-20170831
git branch –d feature-sms-20170831
git push origin develop
提測階段:
4. 從develop建立發布release分支
git checkout -b release-1.1.0 develop
5. 如有bug則在發布分支上進行提交
git commit 「***bug修復」
6. 將發布分支推到遠端
git push origin release-1.1.0
發布階段:7. 提測完成後,將release合併到develop、master分支。
git checkout develop
git pull origin develop
git merge --no-ff release-1.1.0
git push origin develop
git checkout master
git pull origin master
git merge --no-ff release-1.1.0
8. 將master打上tag並發布到線上,
git tag v1.1.0
git push origin master
9. 刪除發布分支(本地+遠端)
git branch -d release-1.1.0
git push origin--delete release-1.1.0
修復線上bug
1. 從master分支建立bug修復分支:
gitcheckout -b hotfix-1101 master
2. 修復完後在測試環境切換至bug修復分支進行測試,無問題後將**合併回develop,master,將master發布至線上並打上tag:
git checkout develop
git pull origin develop
git merge --no-ff hotfix-1101
git push origin develop
git checkout master
git pull origin master
git merge --no-ff hotfix-1101
git tag 1.1.1
git push origin master
git branch –d hotfix-1101
多功能並行開發一般情況下同時只允許乙個release發布版本存在,裡面儲存當前功能開發提測版本,當有緊急需求需要優先開完並提測的情況下,有兩種方式提供選擇:
跟產品/測試溝通,將緊急功能需求與當前正開發功能進行合併提交測試。
從master建立乙個分支來進行開發,走hotfix開發發布流程。
所有發布版本都需要有版本號。
版本號格式
v<
主版本號
>.<
副版本號
>.<
發布如:v1.1.0
主版本號
(major version
)設定規則:
1)專案功能進行重大修改,主版本號加1;
2)專案功能的介面協議重大修改,主版本號加1。
副版本號
(minor version
)設定規則:
1)
主版本號變更時,副版本號置0;
2)
資料結構變更(新增或修改注釋含義的情況除外),副版本號加1;
3)
若副版本號累加至超過20時,採用主版本號進製,主版本號加1,副版本號重新置0。
發布號(
release
)設定規則:
1)
主版本號或副版本號變更時,
release號置0
;2)
若發布的版本無資料結構變更,則
release號加1
。
個人管理 個人知識管理
持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...
個人管理 個人知識管理
持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...
個人管理 個人知識管理
持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...