git flow 概念

git flow 概念

  • Git作为一个代码管理系统,不可避免的会涉及到多人协作。
  • 俗话说无规矩不成方圆。Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐。简单来说就是通过规范化的流程,使得产品、开发与测试等各个部门更高效的协同工作。

git flow 主要分支

  • 根据Git Flow 的规范,我们要将Git 的分支分为 master 、develop 、hotfix 、release、feature这五个分支。

  • 存在两个长期分支

    1. 主分支 master
    2. 开发分支 develop 在这里插入图片描述
  • 三种短期分支

    1. 功能分支 feature
    2. 补丁分支 hotfix
    3. 预发分支 release
  • 我们使用的分支流程:

    -天蓝色圆点所在的线为我们源码的主线(master)。
    -紫色圆点所在的线为主要分支线(develop)。
    -橙色圆点所在的线为新功能开发分支线(feature)。
    -绿色圆点所在的线为新版本发布线(release)。
    -红色圆点所在的线为发布版本bug修复线(hotfix)。

  • 主要功能

    1. master 分支:用于存放对外发布的版本,任何时候在这个分支获取到的都是稳定的已发布的版本。
    2. develop分支 :用于日常开发,存放最新的开发版
    3. feature分支 :可以存在多个,他是基于develop分支被创建,一般根据所需开发的功能来命名分支,每一个新的功能可以创建一个新的分支,开发结束后,需要将其合并到develop上
    4. hotfix 分支:hotfix 分支用来修复生产中的紧急bug,由于develop分支尚处于开发过程中,代码不稳定,不能直接应用于生产。
    5. release 分支:release 分支可以称之为预发布的版本。当我们认为develop版本的代码已经趋于成熟,我们可以打一个release分支。在release 分支上测试完成之后,要将代码合并到master分支和develop上。master 分支是线上版本,而合并到develop版本是因为,在测试过程中,一些细节的东西可能会修改,因此这些优化的内容也应该合并到最终版本以及开发版本中。
  • 注意事项:

    • 所有开发分支从 develop 分支拉。
    • 只要有合并到 master 分支的操作,都需要和 develop 分支合并下,保证同步。
    • master 和 develop 分支是主要分支,主要分支每种类型只能有一个,派生分支每个类型可以同时存在多个。

常用操作流程(新功能开发工作流)

  1. 切换到本地仓库工作区
    cd /home/timerhunter/workspace
  2. 从远程仓库克隆代码到本地仓库
    $git clone https://xxxx@localhost:8443/r/valve/V5-Lora.$git
  3. 基于master分支,创建develop分支
    /*切换到master分支 */
    $git checkout master
    /* 基于master分支克隆develop分支,并在克隆完毕后直接跳转到develop分支 */
    $git checkout -b develop
    /* 推送develop分支到远程仓库 */
    $git push origin develop
  4. 在本地仓库的开发流程
    完成一个功能点或者一天的工作结束时,将代码提交到本地仓库
    /* 提交修改到缓冲区 */
    $git add .
    /* 提交修改到本地仓库 */
    /* 如果是修复的BUG,应该在修改说明的最开始添加Bug#ID,多个Bug用逗号分 隔,例如Bug#002,003 */
    /*如果是完成了一个指派的任务 应该在修改说明的最开始添加Task#TaskID,例如Task#165 */
    $git commit -m "Bug#123 修改说明"
    /* 每完成一个功能点可以对代码进行打包 */
    $git tag -m "简要说明增加/修复/删除了什么功能" v0.0.0.170718
  5. 推送代码到远程仓库
    当完成一个功能点或阶段工作时,将代码推送到远程仓库develop分支
    /* 执行代码拉取操作,防止代码冲突 */
    $git pull
    /* 解决代码冲突后,推送代码到远程仓库*/
    $git push origin develop
  6. 将代码发布到测试分支
    阶段性的开发工作已完成,启动小批量测试工作,将代码发布到测试分支release
    $git checkout develop
    $git checkout -b release
    $git push origin release
  7. 测试工程师提交Bug后修复
  • 从远程仓库拉取代码
    /* 克隆仓库 */
    $git clone https://[email protected]:8443/r/admin/test.$git
    /* 查看远程仓库分支情况:克隆仓库时只能克隆master分支,因此需要拉取指定分支,我们使用$git branch -r查看远程分支情况 */
    $git branch -r
    origin/HEAD -> origin/master
    origin/dev
    origin/master
    origin/release
    /* 拉取测试分支 */
    $git checkout -b release origin/release
  • 修复流程同#4,#5;
  • 注意在$git commit时的修复说明中添加Bug#BugID关键字
  • 完成一个Bug修复或完成阶段性工作后,将代码推送到远程分支
  1. 测试工作完成后,合并代码到develop分支
    /* 切换到develop分支 */
    $git checkout develop
    /* 执行合并操作,将release分支代码合并到develop分支 */
    $git merge release
    /* 如果合并报错,则解决冲突,冲突解决后继续再次执行合并 */
  2. 开发工作和测试工作都完毕后,发布时将develop分支合并到主线
    $git checkout master
    $git merge develop
  3. 阶段开发完毕,打一个里程碑Tag包
    /* 创建里程碑Tag */
    $git tag -m "Task#003 v1.0.0 首版发布" v1.0.0.170718
    /* 推送里程碑Tag到远程仓库 */
    $git push origin v1.0.0.170718

git flow工作流常用操作流程

猜你喜欢

转载自blog.csdn.net/yanmeiyan/article/details/87348567
今日推荐