有個很成熟的叫「Git Flow」的分支模型,它能夠應對 99% 的場景,剩下的那 1% 留給幾乎不存在的極度變態的場景。
需要注意的是,它只是一個模型,而不是一個工具;**你可以用工具去應用這個模型,也可以用最樸實的命令行。****所以,重要的是理解概念,不要執著于實行的手段**。
簡單說來,Git Flow 就是給原本普普通通的分支賦予了不同的「職責」:
* master——最為穩定功能最為完整的隨時可發布的代碼;
* hotfix——修復線上代碼的 bug;
* develop——永遠是功能最新最全的分支;
* feature——某個功能點正在開發階段;
* release——發布定期要上線的功能。
看到上面的「master」和「develop」加粗了吧?代表它們是「主要分支」,其他的分支是基于它們派生出來的。**主要分支每種類型只能有一個,派生分支每個類型可以同時存在多個**。各類型分支之間的關系用一張圖來體現就是:
