zoukankan      html  css  js  c++  java
  • 电商系统 项目管理 GIT的使用

    原文:
    https://blog.csdn.net/xingbaozhen1210/article/details/81386269
    https://www.cnblogs.com/jtlgb/p/9685553.html
    https://www.cnblogs.com/iBrand2018/p/8708740.html
    https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md#23-gitflow工作流




    GIT分支

    1. master:主分支

    2. develop:主开发分支
      由feature分支合并

    3. feature:功能开发分支
      克隆自develop分支
      功能开发完,合并到develop分支
      用于新需求新功能的开发

    4. release:测试分支
      克隆自develop分支(在feature分支合并到develop之后)
      测试到有BUG,在本分支修改
      BUG修改完成后,推送到develop/master分支并推送(完成功能) , 打Tag

    5. hotfix:补丁分支
      克隆自master分支 ,
      主要用于对线上的版本进行BUG修复


    主要工作流程

    1. 创建项目
      初始化项目,拉取第一个develop分支。(初始化gitflow项目会默认创建一个master分支)

    2. 功能开发
      从develop,拉取feature分支,进行开发。(多个开发人员可拉取多个feature)

    3. 开发完成,提交代码
      feature开发完成,合并到develop分支。

    4. 功能测试
      从develop拉取,release分支。

    5. 测试完成,提交代码,上线
      合并release分支,到develop/master并推送

    6. 上线后,BUG修复
      从master拉取,hotfix分支,进行BUG修复

    7. BUG修复完成,提交代码,上线
      合并hotfix分支,到develop/master并推送


    有两种特殊流程

    1. 当进行一个feature时,若develop分支有变动
      如其他开发人员完成功能并上线,则需要将完成的功能合并到自己分支上
      即合并develop到当前feature分支

    2. 当进行一个release分支时,若develop分支有变动
      如其他开发人员完成功能并上线,则需要将完成的功能合并到自己分支上
      即合并develop到当前release分支
      (!!! 因为当前release分支通过测试后会发布到线上 , 如果不合并最新的develop分支 , 就会发生丢代码的情况)


    Git Flow 图形化工具

    1. SourceTree
    2. GitFlow for Visual Studio

    分支命名规范

    1. feature分支,以"feature_"开头,如 feature_v1.1
    2. release分支,以"release_"开头,如 release_v1.1
    3. hotfix分支:以"hotfix_"开头,如 hotfix_20160112
      tag标记:如果是release分支合并,则以"release_"开头。如果是hotfix分支合并,则以"hotfix_"开头。
      master分支每次提交都要打tag,release tag:如release_v1.1,hotfix tag:如hotfix_20160112
      命名都统一采用小写。

    一些其它要点

    1. 用于新建发布分支的分支: develop
    2. 用于合并的分支: master
    3. 分支命名: release-* 或 release/*

    一个很棒的总结

    1,一定要按git flow的流程去管理分支,如feature分支开发完要合并到develop,如果要发布版本到test环境,则从develop拉出一个release分支,release完成后要合并回master和develop分支,修复生产环境问题需要从master拉出一个hotfix分支,hotfix完成后要合并回master和develop分支,并且在master打上tag。

    2,一定要按分支命名规范来命名,便于管理和维护。

    3,了解了git flow工作流程后,可以不使用git flow GUI工具,手动操作即可,可以是原生git命令+vs配合操作,比如给master打tag就要用git命令,这在vs里操作不了的,比如合并分支,虽然也可以使用git命令实现,但在vs里操作更方便直观。

    4,一定要保持分支的纯净,不要随便污染分支。比如,develop分支只包含要发布到下一个release的代码,在没有拉出release分支前不要合并新的feature分支进来。release分支基于develop分支创建,拉出release分支后,我们可以在这个release分支上测试和修复bug,但是,一旦打了release分支后不要从develop分支合并新的改动过来。develop拉出release分支的同时,也意味着develop分支可以开始下一个release的准备工作了。

    5,如果多个版本并行到test环境,怎么解决这个问题?如下图

  • 相关阅读:
    程序员是脑力劳动还是体力劳动
    我理解的技术管理的核心工作----搭班子和带团队
    Ubuntu系统下在PyCharm里用virtualenv集成TensorFlow
    我理解的技术管理的核心工作----定战略
    数据分析师岗位的一点理解
    python中读写excel并存入mysql
    mac里用PyCharm中引用MySqlDB始末
    贝叶斯网络的通俗解读
    将sqlserver导出的csv数据导入到ubuntu和mac上的mysql
    Java之Spring Cloud概念介绍(非原创)
  • 原文地址:https://www.cnblogs.com/guxingy/p/13212631.html
Copyright © 2011-2022 走看看