image.png
咱们先不看上面的线,先理解一下这4个大色块的名词:

  • Workspace:工作区,平时我们写代码的地方。
  • Index:暂存区,写完代码后让它变成的待提交的状态。
  • Repository:本地仓库,提交暂存区的代码到这里,记录进入代码本地管理。
  • Remote:远程仓库,将本地仓库的修改的代码提交到远程,可以供远程协作的人下载。

image.png

Gitflow模型全貌

image.png
image.png

master分支

只存线上的代码,只有确定可以上线时的才合并到master上,并且在master的基础上打Tag。

develop分支

develop分支是在开发时的最终分支,具有所有当前版本需要上线的所有功能。

feature分支

  • 用于开发功能的分支,必须从最新的develop分支代码拉取。分支命名基本上是feature/xxxxx(和功能相关的名字)。
  • 不强制提交到远程仓库,可以本地创建。

    release分支

  • 当develop分支已经有了本次上线的所有代码的时候,并且以通过全部测试的时候,可以从develop分支创建release分支了,release分支是为发布新的产品版本而设计的。

  • 通过在release分支上进行这些工作可以让develop分支空闲出来以接受新的feature分支上的代码提交,进入新的软件开发迭代周期。
  • 在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、发布时间、编译时间等等)。

    hotfix分支

  • 当线上出现bug需要紧急修复时,从当前master分支派生hotfix分支。

  • 修改线上bug,修改完成后合并回develop和master分钟。

    参考

  1. https://www.jianshu.com/p/84dd2da33c82
  2. Git Flow 的正确使用姿势