git多人協作式開發時分支管理策略


什么是 git-flow?

Git Flow是一套使用Git進行源代碼管理時的一套行為規范

主分支Master

首先,代碼庫應該有一個、且僅有一個主分支。所有提供給用戶使用的正式版本,都在這個主分支上發布。Git主分支的名字,默認叫做Master。它是自動建立的,版本庫初始化以后,默認就是在主分支在進行開發。

開發分支Develop

主分支只用來分布重大版本,日常開發應該在另一條分支上完成。我們把開發用的分支,叫做Develop

這個分支可以用來生成代碼的最新隔夜版本(nightly)。如果想正式對外發布,就在Master分支上,對Develop分支進行"合並"(merge)。

臨時性分支

前面講到版本庫的兩條主要分支:Master和Develop。前者用於正式發布,后者用於日常開發。其實,常設分支只需要這兩條就夠了,不需要其他了。

但是,除了常設分支以外,還有一些臨時性分支,用於應對一些特定目的的版本開發。臨時性分支主要有三種:

* 功能(feature)分支

* 預發布(release)分支

* 修補bug(fixbug)分支

這三種分支都屬於臨時性需要,使用完以后,應該刪除,使得代碼庫的常設分支始終只有Master和Develop。

【功能分支】
它是為了開發某種特定功能,從Develop分支上面分出來的。開發完成后,要再並入Develop。

功能分支的名字,可以采用feature-*的形式命名。

創建一個功能分支:

git checkout -b feature-x develop

開發完成后,將功能分支合並到develop分支:

git checkout develop

git merge --no-ff feature-x

刪除feature分支:

git branch -d feature-x

【預發布分支】
它是指發布正式版本之前(即合並到Master分支之前),我們可能需要有一個預發布的版本進行測試。

預發布分支是從Develop分支上面分出來的,預發布結束以后,必須合並進Develop和Master分支。它的命名,可以采用release-*的形式。

【修補bug分支】
最后一種是修補bug分支。軟件正式發布以后,難免會出現bug。這時就需要創建一個分支,進行bug修補。

修補bug分支是從Master分支上面分出來的。修補結束以后,再合並進Master和Develop分支。它的命名,可以采用fixbug-*的形式。

以上就是分支管理的一些策略。

特性開關

以下則是實際項目中有用的一個點:就是當我們在開發一個大型項目的時候,並且是多人進行協作。假設開發者A在開發大型項目中的一個特性。這個特性大概要開發一個月的時間,才能完全開發結束。那么我們不可能把開發到一半的內容展示到測試網站上吧。這個時候我們可以引入“特性開關”。就是創建一個配置文件對這個特性增加一個開關。當我們正在開發中的時候,只在本地配置該開關打開,我們就可以把開發的代碼都合並develop分支上去。其他人是看不見的。當我們全部開發測試完成后。就可以在測試服務器上打開相應的開關。那么測試就可以進行測試了。該特性就對外公布了。

特性開關在多人協作開發的過程中是非常有用的。一般中大型團隊都在使用。

參考文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM