昨天我們介紹了github Flow,今天要介紹跟他名字很像的gitlab flow。
GitLab Flow是GitFlow的更簡單替代方案,它將功能驅動開發和功能分支與問題追蹤互相結合,他的特色是只有master(main) branch,其他分支都是由這主要分支所建立,官方將這個原則叫做upstream first。
代表只有上流的分支才可以開分支給下流用。因此下流不可以自己推code,一定要從上游來。
當有新的需求需要變更程式碼時,需要從master分支開始創建分支,等修改完畢後,再合併回master裡面。另外gitlab flow可以依照部屬的策略,具有production分支,專門用來部屬用。
這種方式可以方便我們控管版本,我們可以多個production分支來放不同的版本。
如果我們需要維護各種穩定版本的時候,我們也可以根據版本來創造branch來分布,一樣是從master長出去,接著就可以根據各版本來創立不同的分支來維護。這樣就可以滿足維護各版本的需求,而且不會讓流程變得很複雜。
以CI的角度來看,gitlab也只要跑兩次CI就可以跑一次CD了。部屬很快速。
優點就是他依然是一種簡單的策略,並且他支援對各種環境的部屬,不同版本的部屬也支援的相當好。
缺點就是因為他都會把code推再master分支上面,我們管理上要小心,因為沒有特別限制是否要創立分支後才可以推code到master分支上面,沒有明確規範pull request,可能會沒有code review就上code了。這是一道雙面刃,果然軟體開發沒有銀彈可以使用XD
有一個笑話就是推code到master分支上就不用pull request囉,讚(?
pros:
cons:
https://medium.com/bucketing/three-kinds-flow-of-git-1b4296196e40