git flow 简单入门 | SourceTree操作Git工作流

简介

Git 作为源码管理系统,不可避免涉及到多人协作。团队中商定一个工作流程至关重要的。本文已常用的Git flow 做说明,该模型如下图所示:

image

说明

该模型总存在两个长期(核心)分支:

  • master
  • develop

master ,我们认为该分支存放对外发布的版本,任何时候该分支都是稳定的发布版。我们不可以直接在该分支push 代码。

develop ,我们认为该分支的代码存放的是达到稳定并且准备发布时的,我们的新功能开发都是基于此分支。

其次,项目存在的三种短期分支:

  • feature
  • hotfix
  • release

feature ,即功能分支,我们进行新功能的开发将在此分支上进行。该分支的代码基于develop 并且最终回合并回develop 分支。

hoxtfix , 即补丁分支,我们进行线上问题修复将在此分支进行,该代码分支基于master 并且最终将合并会develop、master 分支。

release, 即预发分支。

操作流程实例

当我们进行新功能开发时,需要基于develop分支拉取feature分支进行开发,如增加了一个功能 我们将基于develop分支创建 feature/news 分支。

当功能开发完毕时,我们将提交merge request,将该功能合并到develop 分支。

当所有feature 功能开发完毕,且都已合并回develop,开发自己测试完毕后。准备创建预发布版本,就可以基于develop创建release分支。此时测试人员可以基于该版本release进行测试,发现了问题,我们在release分支上进行问题的修复。

当具备上线条件时,需要将release分支合并到master和develop分支,同时需要打tag,然后进行上线操作,线上发布的为master分支。

当需要修复线上bug时,我们需要基于master创建hotfix分支,当修复且验证完毕后,将hotfix分支合并回master分支,同时为了保证该hotfix包含在下一个发行版中,同时需要合并回develop分支,同时需要打tag。最后删除hotfix分支。

SourceTree操作

SourceTree 的图形化界面git工具,可以简化我们上述的复杂操作。

  • 初始化项目

    点击右上角Git工作流按钮,初始化git flow。

    image

  • 开发新功能

    点击创建新的功能,此时我们发现已经为我们创建了feature/news分支,我们将在此分支进行功能开发。

    imageimage

  • 开发完成

    点击完成功能。 此时我们发现已经将feature/news分支合并到了develop分支。

    image

  • 预发布 开始release

    点击建立新的发布版本,此时我们发现已经为我们创建了release/v1.0.0 分支。

    imageimage

  • 发布 完成release

    点击完成发布版本,此时我们发现已经将release/1.0.0分支合并到了develop和master

    imageimage

  • 线上问题修复 开始hotfix

    点击创建新的修复补丁,此时我们发现基于master为我们创建了hotfix/v1.0.0-20191226

    imageimage

  • 完成问题修复 完成hotfix

    点击完成修复补丁,此时我们发现将hotfix合并回了develop和master分支。

    imageimage

参考文档

https://nvie.com/posts/a-successful-git-branching-model/

 

更多文章请访问http://blog.liuqitech.com/

posted @ 2019-12-26 16:30  liuqitech  阅读(603)  评论(0编辑  收藏  举报