电商系统 项目管理 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环境,怎么解决这个问题?如下图

原文地址:https://www.cnblogs.com/guxingy/p/13212631.html