有个很成熟的叫「Git Flow」的分支模型,它能够应对 99% 的场景,剩下的那 1% 留给几乎不存在的极度变态的场景。
需要注意的是,它只是一个模型,而不是一个工具;**你可以用工具去应用这个模型,也可以用最朴实的命令行。****所以,重要的是理解概念,不要执着于实行的手段**。
简单说来,Git Flow 就是给原本普普通通的分支赋予了不同的「职责」:
* master——最为稳定功能最为完整的随时可发布的代码;
* hotfix——修复线上代码的 bug;
* develop——永远是功能最新最全的分支;
* feature——某个功能点正在开发阶段;
* release——发布定期要上线的功能。
看到上面的「master」和「develop」加粗了吧?代表它们是「主要分支」,其他的分支是基于它们派生出来的。**主要分支每种类型只能有一个,派生分支每个类型可以同时存在多个**。各类型分支之间的关系用一张图来体现就是:
![](https://img.kancloud.cn/3e/85/3e8570af1374fcdf80775d0c15792475_614x380.png)