Git版本管理個人解讀

2021-08-18 11:55:08 字數 3399 閱讀 6173

為了規範**庫分支管理

和版本管理,使**分支及版本結構清晰,方便維護,並避免由於維護造成的錯誤的版本發布等問題。

通常每個應用的**將包括

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

個人管理 個人知識管理

持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...

個人管理 個人知識管理

持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...

個人管理 個人知識管理

持續的學習是個人生存和發展的基礎 資訊和知識 在一段時間和時期內,學習的內容必須聚焦,起碼要在乙個領域內成為專家學習的內容取決於個人的價值觀 特長 個性和目標人是知識獲取的重要渠道,所以你應該知道誰最擅長什麼?遇到問題時知道可以向誰學習和請教人際關係需要維護,捷徑是找到那些願意共享自己朋友資源的人,...