git分支實踐

2022-07-03 22:42:18 字數 2586 閱讀 4651

本文基於這樣乙個場景:有多個新功能並行開發,按先後順序上線,但是偶爾會出現正在測試的版本暫停上線,另外乙個緊急功能需要優先上線。本文分享乙個用git分支來管理這樣的場景。

本文基於:

主要分支

**倉庫中有兩個長期的分支:

master用作生產分支,裡面的**是準備部署到生產環境的。

develop是可交付的開發**,也可以看成是用於整合分支,乙個功能完善的分支,此分支的**需要推送的開發環境進行功能驗證。

develop分支中的**足夠穩定的時候,就將改動合併到master分支,同時打上乙個標籤,標籤的名稱為發布的版本號。

輔助分支

通過輔助分支來幫助並行開發,和主要分支不同,這些分支的生命週期是有限的:

feature(新特性分支)

feature分支可能從develop分支分出,最終必須合併回develop,或者放棄。

特性分支用於開發一次發布所需要的功能。最終會合併回develop(當功能開發完畢的時候),或者放棄(如果最終決定不開發這個特性)。

不建議直接再feature分支開發,組員建立自己的本地分支,開發完成提交merge request到feature,由負責人對**進行review,通過後合併到feature分支。

可以同時存在多個feature,只有乙個feature發布上線後,另外乙個feature才能合併到develop,如果需要提前上線,需要走emergency分支。

release(發布分支)

release分支可以從develop分出,最終必須合併master。發布分支以release-*的方式命名。

發布分支為新的發布版本做準備,用於部署到測試環境進行測試,測試通過後可以發布上線。當可以發布上線時,將**合併到master

在**的功能驗證通過的時候,可以測試的時候從develop分支分出release分支。這時要確保此次發布包括的特性都已經合併到develop分支了(同時,為下一版發布準備的特性不能合併到develop分支,必須等待發布上線後才能合併)。

hotfix(緊急修復分支)

master分出,必須合併回developmaster。分支名以hotfix-*開頭。

緊急修復分支和發布分支很像,只不過它們是意料之外的。如果生產系統裡有乙個緊急的bug,必須馬上修復的話,我們就從master裡分出乙個緊急修復分支。

這樣,某個人修復緊急bug的同時,團隊其他成員可以繼續在feature分支上開發。

完成bug修復後需要部署到臨時測試環境。測試通過後,發布上線,經**合併回masterdevelop

emergency(緊急上線分支)

從 需要緊急上線的feature分出,必須合併回developmaster。分支名以emergency -*開頭。

緊急上線分支和發布分支很像,只不過它們是意料之外的。如果計畫外的新特性需要提前上線,可以將feature分支的**提交到emergency,然後部署到臨時測試環境進行測試。測試完成部署到生產時,需要將**合併回developmaster

這樣,某個新功能緊急上線的同時,團隊其他成員可以繼續在其它feature分支上開發,或者在release進行另外版本的測試。

Git分支最佳實踐

本文介紹我一年前在自己的專案 包括工作專案和私人專案 中引入的git分支模式,這個模式很成功。主要分支 倉庫中有兩個長期的分支 master develop master用作生產分支,裡面的 是準備部署到生產環境的。develop是可交付的開發 也可以看成是用於整合分支,每晚構建從develop獲取...

git 分支管理實踐

如圖步驟1,master對開發者只有讀許可權,開發者從master拉取並新建feature x分支進行開發 如圖步驟2,開發完成後,提測時,基於feature x分支新建release 1 0 0分支,並把其它feature分支合併到release 1 0 0分支中。如圖步驟3,release 1 ...

GIT實踐 同步遠端分支

更新遠端分支 當git倉庫位址發生變化後,首先更新遠端位址 git remote set url origin git git.yonyou.com new group ncc quartz.git或者 git remote set url origin檢視本地分支與遠端分支的關聯關係 輸入如下命令...