淺談Git分支策略

《Git團隊協作》介紹了幾種分支策略,結合之前在工作中用到的分支策略,簡單總結下。

一、主線分支開發

主線分支開發.png
這是最基礎的分支策略,有且只有一個分支——master,所有人都可以隨時提交到master分支,隨時可以部署發版。在項目規模小,開發者數量不多並且大家負責的工作比較獨立的情況下,這樣簡潔的分支策略已經可以滿足了。但是一旦出現問題之後,代碼回退就很困難了。

二、使用分支的主線開發

使用分支的主線開發.png
這種分支策略先前有使用過,每個開發者都有自己專屬的分支,這樣的分支策略很好理解,大家只需要專注自己的工作,各司其職就可以了。但遇到前後端分離或者功能依賴的時候,就要經常同步代碼到master,就會退化爲上一種分支策略。

三、功能分支部署

功能分支部署.png
在團隊更大或前後端分離得情況下,一個需求功能常常需要多個人合作完成,那麼分支就應該按功能劃分,粒度小到剛好能容納一個完整的需求功能。功能開發完成後,就合併到集成分支發版,如果驗證之後沒有問題,再將集成分支的代碼合到master。這樣雖然分支數量會很多,但可以保證多人協作的暢通,並且由於用集成分支進行部署發版,如果出現問題也可以用master分支恢復版本,可以進行簡單的版本管理。
#四、狀態分支和功能分支的結合
代碼在各種環境的流向.png
一個項目的迭代有開發→測試→發佈等不同的過程,在這些過程中,代碼會遷移到不同的環境,不同環境也應該有自己的分支。
狀態和功能分支結合.png 這也是當前使用的分支策略,其實是將集成分支分爲了測試、預發分支,方便在不同的環境下出現問題,進行修復或代碼回退。舉個例子,在一個版本開發中,到了預發階段發現了問題,隨即進行修復再同步到測試分支和master分支。確保經過測試和修復的代碼,在測試、預發、生產環境中運作正常。