美文网首页Gitlinux&github
Git 协作流程 git-flow

Git 协作流程 git-flow

作者: 4ea0af17fd67 | 来源:发表于2018-11-15 17:38 被阅读50次

    版本命名

    语义化版本(Semantic Versioning):
    主版本号.次版本号.修订号(MAJOR.MINOR.PATCH)

    *   开发版 develop 主版本号.次版本号.修订号-dev 例如:1.2.2-dev
    
    *   预发布版 release 主版本号.次版本号.修订号-beta 例如:1.2.2-beta
    
    *   发布版 master 主版本号.次版本号.修订号 例如:v1.2.2
    

    分支命名策略

    长期分支有两个 master 和 develop

    主分支 master:

    负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。不允许随意的往该分支合并代码。

    开发分支 develop:

    该分支记录相对稳定的版本,所有的feature分支都从该分支创建。

    其它分支为短期分支,其完成功能开发之后需要删除

    特性(功能)分支 feature/*:

    开发新的功能、完善已有功能、bug修复等日常开发任务使用特性分支,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到 develop 分支,之后删除该分支。

    预发布分支 release/*:

    用于代码上线准备,该分支从develop分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到master分支和develop分支。

    热修复分支 hotfix/*:

    紧急bug修复分支,该分支只有在紧急情况下使用,从master分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到master分支以便上线,同时需要再合并到develop分支。

    工作流程

    第一步

    在github中创建一个新的仓库,这时候项目是空的,而且只有一个master分支

    第二步

    第一个开发人员进来了,他在本地创建一个develop分支,并且提交到远程

    git branch  develop
    git push -u origin develop
    

    现在线上就有两个分支master 和 develop 现在这两个分支里面都是空的

    第三步

    一、二步完成后,任何一个参与该项目的开发人员首先要做的就是从develop分支上切一个新分支进行功能开发

    git checkout -b <本地分支名 feature/***> <origin/develop>
    或者
    git fetch origin 远程分支名:本地分支名
    git branch --set-upstream-to=origin/远程分支名    本地分支名
    然后进行开发,开发差不多,想提交一下
    
    git status
    git add
    git commit
    

    第四步

    经过第三步,提交了几次后,感觉差不多了,就可以合并到develop分支

    git pull origin develop //先拉取develop中的代码,因为有可能别人已经往上提交过代码了
    git checkout  develop//切到develop分支
    git merge <feature/**>//合并feature/**中的代码到develop中
    git push //提交到develop远程分支上
    git branch -d feature/** //删除本地的分支
    

    第五步

    某一个开发人员想发布,但是其他人员还在进行开发,先不管别人,他先建立一个新的分支release-1.1.2-beta做发布准备,测试组介入测试,测试中发现问题,开发组在该分支进行修复,功能完善后将该分支合并到master和develop分支,删除该分支

    git checkout -b <本地分支名realse-0.1> <远程分支名develop>
    //注意这个realse-tagNo分支的功能是对发布的代码进行改善的地方
    创建这个分支相当于测试环境修改,改好后就需要更新master和develop,然后删除分支
    
    git checkout  master//切到master分支
    git merge release-0.1//将release分支合到master上
    git push//将合完的代码提交到远程master
    git checkout develop//切到develop分支
    git merge release-01//将release分支上的代码合到develop分支上
    git push//合完的代码推送到远程的develop分支
    git branch -d release-01//删除本地release分支
    

    第六步

    线上环境发现bug了,从master分支检出一个新分支hotfix/xxx,修改完成后测试组介入测试,如果测试发现bug,开发组在该分支修改,功能完善后合并代码到master和develop分支,然后删除该分支。

    git checkout -b hotfix/xxx master//从master分支上新建分支
    然后开始改bug,改完后
    
    git checkout master//切回master分支
    git merge hotfix/xxx//将改完bug后的代码合并到master
    git push
    改完bug的代码还要合到develop中
    
    git checkout develop
    git merge hotfic/xxx
    git push
    git branch -d hotfix/xxx
    

    相关文章

      网友评论

        本文标题:Git 协作流程 git-flow

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