Git代碼分支實踐使用方式

Git是一個非常強大的分佈式版本管理工具,分佈式簡單的理解就是在本地也會copy一份代碼數據,用戶機器可以當作一臺本地服務器,用於代碼的離線的提交,即你坐在青海湖邊在沒網絡的情況下也可以提交自己的代碼,想想就流逼,但是真正提交到中央倉庫還是需要網絡才行,不過這個功能已經可以讓大家不受中央集羣的服務狀態影響,即使掛掉了自己還可以進行代碼提交,等服務器正常後再次提交即可,本文不講述git與svn的區別,如果想大概瞭解的話可以查看《git與svn的區別》,下面主要講述git分支管理在項目中的實際使用。

主要分爲以下四大分支:

1.master

2.dev

3.test

4.bugfix(可不用)

一、master(主分支)

當代碼克隆下來後默認就是這個分支,也就是所謂的主分支,可以認爲該分支是存儲當前功能測試通過且可運行的正式代碼,所以一般不會直接在主分支上進行開發,這個是核心分支,也就是主路徑,所有最後的代碼都必須合併到主路徑上,如果發佈到生產環境必須通過master分支進行打包,這是代碼管理非常重要的一步,即使線上代碼出現問題後也可以迅速通過主分支進行代碼修復,保證不會出錯,也保證修復的是與線上正在的運行代碼同步的。

git clone xxxxxxxx.git

 

 

master的版本管理直接用tag功能即可,即通過打tag的方式表示當前可以上線的一個版本,也方便以後進行對應版本的數據查詢或者比較,如v1.0.0-publish,v2.0.0-publish等

二、dev(開發分支)

開發分支是研發同學最需要關心的,所有的開發工作應該圍繞dev分支進行展開,創建dev分支腳本如下:

git checkout -b dev master

 

 

dev分支在實際工作中主要有兩種常用場景:

1.單個版本開發

2.多個版本並行開發

針對第一種情況,屬於比較常見的情況,即開發過程中都是按順序進行的,即1.0.0開發完成之後纔會進行開發1.1.0的需求開發,1.1.0完成上線後再進行1.2.0的版本開發,針對這種,工作直接在dev分支上開展就可以了,不需要做特殊處理,因爲不會產生任何干擾~~

相關操作腳本:

git checkout -b dev master

 

 

針對第二種情況,可能在互聯網公司會比較常見,在開發資源比較充足的情況下,多個版本可能同時並行,即1.1.0和1.2.0或者更多版本在同時開發,但是又想快速試水一些功能,不可能等到全部做完都上線,所以1.1.0會先發,1.2.0會在另外一個時間點發,產品經理通常會很着急,認爲錯過這個時間點就會損失十幾億的感覺,碎碎的憂傷,所以分支的合理管理非常重要,不然在開發過程中會顯得非常混亂,如果都在dev分支上進行開發就會把沒做完的功能都發線上了,這時候就更碎了~~~ git 也給我們使用feature功能模式,即功能分支,可以通過這個來劃分,如下:

先創建兩個feature分支,跟創建dev分支一樣,不過這次是從dev分支進行創建

git checkout -b feature-1.1 dev
git checkout -b feature-1.2 dev

 

 

 

開發1.2.0版本操作的相關腳本:

git checkout feature-1.2

#又是各種commit push操作,開發完成測試通過後執行下面操作,合併代碼到dev分支:
git checkout dev
git pull origin dev
git merge --no-ff feature-1.2
git push

#刪除本地feature分支
git branch -d feature-1.2
#刪除遠程feature分支
git push origin --delete feature-1.2

 

 

 

 

 

 

 

 

分支切換流程圖如下:

三、test(測試分支)

測試分支很明顯是給測試同學使用的,主要是開發同學認爲在開發分支上進行測試通過後可以合併到test分支上,提給測試同學測試,如果需要簡單一點的分支管理結構可以把test分支去除,因爲加了一層之後合併的操作可能會增加,不過這塊可以保證合併到主幹的代碼都是統一由測試同學測試通過後合併,因爲dev分支一直都可以添加新代碼,當增加新代碼後必須要測試纔可以上線,所以纔會產生了test分支,創建分支的腳本如下:

git checkout -b test master

 

 

分支合併操作跟上面的操作腳本相似,這裏面就不一一列出了,大概的執行路徑如下圖:

 

四、bugfix分支(bug修復分支)【可不用】

緊急修復線上bug的時候使用,但是一般場景的話直接在master上修復即可了,因爲bug一般都是要立即解決,切個分支來做還會增加成本,所以可以不用單獨切個分支出來,如果要使用的話其實也是從master上打個分支出來,修復完後直接合併到master上,分支創建腳本如下:

git checkout -b bugfix master

 

 

具體切換流程如下:

現在在項目中主要是使用dev - test -master的模式,大家也可以使用這種方式進行分支管理,讓你的代碼庫更加有序,上面有說的不對或者寫錯的地方,麻煩大家在評論中指出,或者有更好的管理方法也可以一起交流~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章