美文网首页
GitFlow讲解

GitFlow讲解

作者: 农夫_三拳 | 来源:发表于2019-10-09 19:44 被阅读0次

    Git Flow 工作流程

    1.Git Flow是什么它解决了哪些问题:

    (1):Gitflow Workflow是一种Git工作流程设计,Gitflow工作流定义了围绕项目发行版设计的严格分支模型。这为管理大型项目提供了一个强大的框架。  
    
    (2):Gitflow非常适合具有计划发布周期的项目。除了Feature Branch Workflow所需的功能外,此工作流程不会添加任何新概念或命令。
    它可以将非常具体的角色分配给不同的分支,并定义它们应如何以及何时进行交互
    
    

    2.Git Flow安装:

    git-flow工具集是具有安装过程的实际命令行工具。git-flow的安装过程很简单。git-flow的软件包可在多个操作系统上使用。
    在OSX系统上,您可以执行brew install git-flow。在Windows上,您需要下载并安装git-flow。安装git-flow后,
    您可以通过执行在项目中使用它git flow init。Git-flow是围绕Git的包装。该git flow init命令是默认git init 命令的扩展,除了为您创建分支外,
    不会更改存储库中的任何内容。
    

    3.Git Flow工作流:

    WX20191009-194655@2x.png
    master该工作流使用两个分支而不是单个分支来记录项目的历史记录,
    第一步是master用develop分支来补充默认值。一种简单的方法是让一个开发人员在develop本地创建一个空分支并将其推送到服务器:
    git branch develop
    git push -u origin develop
    
    
    使用git-flow扩展库时,git flow init在现有存储库上执行将创建develop分支:
    $ git flow init
    Initialized empty Git repository in ~/project/.git/
    No branches exist yet. Base branches must be created now.
    Branch name for production releases: [master]
    Branch name for "next release" development: [develop]
    
    How to name your supporting branch prefixes?
    Feature branches? [feature/]
    Release branches? [release/]
    Hotfix branches? [hotfix/]
    Support branches? [support/]
    Version tag prefix? []
    
    $ git branch
    * develop
     master
    

    4.功能分支:

    gitflow_2.png

    feature与分支结合的develop分支都是Feature Branch Workflow。但是,Gitflow工作流并不止于此。
    Feature通常创建develop分支到最新分支。

    创建功能分支
    没有git-flow扩展名:
    git checkout develop
    git checkout -b feature_branch
    
    使用git-flow扩展名时:
    git flow feature start feature_branch
    
    像平常一样继续工作并使用Gi​​t。
    

    完成功能分支
    完成该功能的开发工作后,下一步就是将合并feature_branch到中develop。

    没有git-flow扩展名:
    git checkout develop
    git merge feature_branch
    
    使用git-flow扩展:
    git flow feature finish feature_branch
    

    5.发布分支:

    gitFlow_Release.png

    一旦develop获得了足够的功能以进行发布(或临近预定的发布日期),就可以从分支一个release分支develop。创建此分支将开始下一个发行周期,因此此刻之后不能添加任何新功能-该分支中应仅包含错误修复,文档生成以及其他面向发行版的任务。一旦准备好发布,release分支将合并到master版本号中并用版本号标记。此外,应将其合并回develop,自启动发行以来可能已经进行了改进。
    使用专门的分支来准备发布,使一个团队可以完善​​当前版本,而另一个团队可以继续开发下一个版本的功能。

    没有git-flow扩展名:
    git checkout develop
    git checkout -b release/0.1.0
    
    使用git-flow扩展名时:
    $ git flow release start 0.1.0
    Switched to a new branch 'release/0.1.0'
    

    6.修补程序分支:

    gitflow_fixBranch.png

    维护或“hotfix”分支用于快速修补生产版本。Hotfix分支与release分支和feature分支很像,只是它们基于master而不是develop。这是唯一应直接从分支的分支master。

    没有git-flow扩展名:
    git checkout master
    git checkout -b hotfix_branch
    使用git-flow扩展名时: 
    $ git flow hotfix start hotfix_branch
    

    例如完成一个release分支,一个hotfix分支被合并到两个master及develop.

    git checkout master
    git merge hotfix_branch
    git checkout develop
    git merge hotfix_branch
    git branch -D hotfix_branch
    
    $ git flow hotfix finish hotfix_branch
    

    摘要:
    Gitflow的总体流程为:

    develop从master创建一个分支
    release从develop创建一个分支
    Feature 从develop创建分支
    当feature完成后,会被合并到develop 分支
    当release分支完成它合并到develop和master
    如果master检测到问题,hotfix则从以下位置创建分支master
    一旦hotfix完成后,会被合并到两个develop及master
    

    git场景:

    1. 产品迭代1有多个功能多人同时开发时如何开分支
    1.有多少个功能开多少个分支。
    2.公共类文件中需要函数,A和B 同时都需要使用,这时可以单独开一个分支,添加该方法,提交合并到develop分支。A和B同时去develop 合并最新的代码,合并到自己所在的feature分支。
    
    1. 什么时候合并feature到develop,测试通过还是开发完成?
    开发完成功能后,自测后没问题才可合并到develop分支
    

    3.什么时候将developr分支代码合并到release分支,提测还是测试完成?

    
    功能模块开发完成后才可以合并到release分支
    现阶段版本发布比较频繁所以,发布的测试包可以直接在develop分支发包。
    后期预正式上线的时候 需要添加release分支,发布测试包必须在release分支发布。发布版本后bug修改也需要在release分支开分支分支命名
    例如:release_iOS_V1.0.1
    分支名:release_iOS_V1.0.1/模块+fixBUG
    
    team leader 在成员完成BUG修复后,需及时将release分支代码合并到develop分支,已保持最新
    

    相关文章

      网友评论

          本文标题:GitFlow讲解

          本文链接:https://www.haomeiwen.com/subject/ynxnpctx.html