Git Flow 是构建在 Git 之上的一个组织、管理软件开发活动的模型。Git Flow 是一套使用 Git 进行源代码管理时的一套行为规范和,通过利用 Git 创建和管理分支的能力,为每个分支设定具有特定的含义名称,并将软件生命周期中的各类活动归并到不同的分支上。实现了软件开发过程不同操作的相互隔离。这种软件开发的活动模型被称为 “Git Flow”。
gitflow 的核心就 branch,通过在项目的不同阶段对 branch 的不同操作包括但不限于 create、marge、rebase、等来实现一个完整的高效率的工作流程。一般而言,软件开发模型有常见的瀑布模型、迭代开发模型、以及最近出现的敏捷开发模型等不同的模型。每种模型有各自应用场景。Git Flow 重点解决的是由于源代码在开发过程中的各种冲突导致开发活动混乱的问题。因此,Git flow 可以很好的于各种现有开发模型相结合使用,尤其是多人合作开发时提高效率。用一张图来了解 gitflow 的流程:从右向左看 从上到下看
Branch 是 gitfolw 的核心。主要分为两大类 Main Branchs 和 Supporting branches, 其中 Main Branchs 中又包含了 Master 和 Develop,而 Supporting branches 中包含了 **Feature **、Release、Hotfix 以及其他自定义分支,下面逐一讲解:
Git Flow 开发模型从源代码管理角度对通常意义上的软件开发活动进行了约束。应该说,为我们的软件开发提供了一个可供参考的管理模型。Git Flow 开发模型让开发代码仓库保持整洁,让小组各个成员之间的开发相互隔离,能够有效避免处于开发状态中的代码相互影响而导致的效率低下和混乱。
所谓模型,在不同的开发团队,不同的文化,不同的项目背景情况下都有可能需要进行适当的裁剪或扩充。
推荐 sourceTree 和 gitkarken (用免费版即可,不用充钱) 前者对 gitsubmodel 的支持不太好,不过目前介于我们没有实现组件化所以暂时可以无视;后者完美支持 gitsubmodel,但是在拉取一些比较大的库的时候可能会卡死,前公司一个项目 30G+ 会有卡死情况出现,后者界面炫酷一些 iOS 的话 Xcdoe 自带 git 也可以试试。