更新时间:2021-07-27 GMT+08:00
分享

代码分支迁移

分支策略介绍

在大中型企业,并不会简单的只使用master分支开发和测试,会通过约定好的分支策略进行日常研发和版本发布。DevCloud使用GitFlow作为基础工作模式,本文基于GitFlow工作流进行迁移。

  • Master :对应的是生产环境 ,分支中包含的是可以部署到生产环境中的代码,只可以merge,不允许commit。
  • Hotfix:补丁分支,生产环境发现新Bug时创建的临时分支,问题验证后,合并到Master和Develop分支。
  • Release:对应的是集成测试环境 ,发布分支,发布新版本时,基于Develop分支创建,发布完成后,合并到Master和Develop分支。
  • Develop:对应的是开发环境 ,主开发分支,用来集成测试最新合入的开发成果,包含要发布到下一个Release的代码。
  • Feature:特性分支,每个特性一个分支,用于开发人员提交代码并进行自测。当开发完成,合并回Develop分支进入下一个Release。

GitLab与DevCloud分支功能对照

GitLab常见功能点

DevCloud对应功能点

能否迁移

DevCloud详细描述

仓库密钥/密码配置

仓库密钥/密码配置

SSH/HTTPS传输方式需要配置密钥/密码,作为与代码托管服务端交互的凭证。

分支保护

分支保护/提交规则设置

DevCloud分支保护可以为每一个分支创建不同的提交、合并策略,并在提交规则设置中,可以勾选更为精细的提交限制。

研发操作

分支拉取

新建分支

DevCloud支持基于已有分支名、标签、SHA新建分支。

clone/pull/push

clone/pull/push

GitLab和DevCloud都不限制客户的Git终端使用习惯,Git bash和TortoiseGit等均可使用,本文截图都使用的是Git bash。

Merge Request

合并请求

DevCloud中的合并请求,包括发起合并请求、讨论新增的文件更改以及最后合入操作,保证合入目标分支的代码得到充分检验。

分支网络

仓库网络

DevCloud可以在仓库网络中切换分支,查看分支提交轨迹和分支间拓扑网络。

版本发布打标签

版本发布打标签

在发布软件版本的时候,DevCloud可以直接在平台界面给仓库打上标签。

仓库统计

仓库统计

无。

拉取分支

开发人员进行新功能开发时,需要从develop分支上拉取一个新分支进行开发及调试:

  1. 在代码托管服务页面,单击仓库名称进入代码仓库。选择“分支”页签,单击“新建分支”。在弹框中选择基于“master”,输入最新分支名“develop”,单击“确定”保存,完成基于master拉取新分支“develop”

  2. 采用同样的方法,基于develop分支拉取新分支“featureA”
  3. 在本地使用Git客户端,输入以下命令,基于云端featueA分支创建本地featureA分支。

    git check out -b featureA remotes/origin/featureA

设置分支保护

在GitFlow工作流中,为了保证生产环境对应分支的稳定性,通常希望可以将其“保护”起来,从而保证该分支的安全,可以阻止管理者以外的人推送代码,阻止任何人强行推送代码,如果想改变该分支,可以通过发起“合并请求”的方式,合入目标分支。

DevCloud代码托管服务提供了以下三种权限:

  • 能提交,能合并
  • 不能提交,能合并
  • 不能提交,不能合并

由于master分支为生产分支,需要最严格的代码合入把控,推荐对master分支的管理者权限设置为“能提交,能合并”,开发者权限设置为“不能提交,不能合并”。其余分支也根据风险等级进行保护设置。

在代码托管服务页面,单击仓库名称进入代码仓库。选择设置 > 仓库管理页签,单击“新建保护分支”。在弹框中选择需要保护的分支、管理者权限、开发者权限,单击“确定”保存。

研发操作

  • 架构开发

    技术经理/架构师获取云端仓库地址,将本地完成的架构代码提交到DevCloud服务器后,在demo代码仓库的“历史”中查看提交记录。

    在本地Git Bash终端的具体操作如下:

    git clone -仓库地址
    git add .
    git commit -m "project framework"
    git push 
  • 新功能开发

    开发人员基于本地featureA分支进行开发,并完成自测,向develop分支发起合并请求,新功能合入develop分支,进行功能集成测试。

    1. 开发人员在本地进行代码开发后,提交到云端代码仓库featureA分支。
    2. 当新功能自测完成后,在“合并请求”页面,单击“新建合并请求”,选择分支源和目标,发起合并请求,选择合并人以及评审人

      代码托管服务为分支合并建立了可配置的审核规则,当一个项目组人员较多时,可以是设置多个评审人来共同检视一段代码,以确保代码的正确性。

    3. 合并请求的相关评审人分别进行打分,评论等操作。

    4. 如果审核通过,则可将代码合入develop。分支合并成功后,在“提交网络”页面可查看分支合并轨迹。
  • 版本发布

    develop分支功能验证成功后,拉取release分支进行发布验证,发布成功后,合入master主分支,打标签记录发布版本。

    1. “仓库分支”页面,基于develop分支拉取新分支“release”
    2. 使用release分支进行相应的发布测试,发现问题后,可以进入要修改的文件,单击“编辑”,直接线上修改提交。

    3. release分支全部测试完成后,通过合并请求合入master分支。
    4. “标签”页面,单击“新建标签”,在弹窗中输入版本号,在master分支上打标签,记录版本发布。

仓库统计

DevCloud也提供了代码统计功能,从代码提交趋势,成员提交次数,以及语言占比等维度对代码仓库进行统计分析。关于仓库统计的操作方法请参见仓库统计

分享:

    相关文档

    相关产品

close