返回介绍

Codeup 最佳实践

发布于 2024-05-30 23:00:45 字数 30983 浏览 0 评论 0 收藏 0

1. 前言

本文将介绍如下几方面内容:

  1. 如何在 Codeup 上新建代码库,以及如何在云效平台管理代码分支。
  2. 如何将其他地方已有的 git 库迁移至 Codeup,并在云效平台对其进行分支管理。
  3. Codeup 的代码安全保护,如何保护代码分支、如何做质量合入的控制。

2. 最佳实践概述

一个应用模块开发设计完成后,便进入了迭代开发过程。开发人员的开发方式一般分为两种:主干开发和分支开发(常用),这两种开发方式均基于代码库。本文介绍了如何创建代码库、如何在云效平台配置代码库权限、以及如何拉取分支进行开发。

【适用场景】

  • 全新项目开发,第一次使用 Codeup 做代码库管理
  • DevOps 开发转型,已有代码库并且现在准备迁移至 Codeup

3. 前置条件

在执行本文操作前,请完成以下准备工作:

  • 所在公司已购买并开通配置管理模块、Codeup 等。
  • 已注册云效账号并完成认证,可以登录云效平台、Codeup 平台。
  • 完成云效产品培训并通过相关考试。
  • 加入云效的钉钉答疑群(联系本公司云效接口负责人入群)。
  • 管理员已完成各种访问权限的配置。

4. 工具准备

  • 本方案使用 Chrome 浏览器,需提前准备。
  • 本地机器上安装 git 客户端(会同步安装 Git Bash 命令行工具)。
  • 安装钉钉或企业微信。

5. Codeup 新建代码仓库

5.1 新创建代码库

入口 1:点击页面右上角菜单 “+ 添加代码库”。 入口 2:在欢迎页点击新建代码库新创建代码库

【操作步骤】:

  1. 填写代码库名称、选择代码库组(控制开发人员对代码库的访问权限)和代码库公开性(私有/企业可见)。新创建代码库
  2. 完成后,点击确定,已创建的代码库在 “我参与的” 中可见。新创建代码库

5.2 Codeup 文件提交

代码库创建完毕后,便可进行代码或文件的提交。

5.2.1 在 Codeup Web 端提交文件

【操作步骤】:

  1. 点击代码库页面右上角的 “新建文件” 或 “上传文件” 增加文件(支持在线编辑和浏览器上传)。Web端提交文件
  2. 输入文件名和文件内容,点击保存Web端提交文件
  3. 填写提交信息并提交

    Web端提交文件

5.2.2 本地客户端提交文件

【操作步骤】:

  1. Clone 代码库到本地工作目录。 本地机器打开 Git Bash(也可用本机自带的命令行工具,本案例以 Git Bash 为例),进入工作目录开始 clone,命令如下:

    $ cd C:\codeup\workspace
    $ git clone http://xxx.com/codeup/xxx/group01/my_repo.git
    

备注:若使用 http, 会提示输入用户名和密码,验证正确后开始 clone;若使用 ssh,则需要配置公钥和私钥。
本地客户端提交文件

本地客户端提交文件

本地客户端提交文件

  1. 本地工作目录增删改文件。 Clone 成功后,本地目录会出现名字为代码库名称的文件夹,进入该文件夹,Codeup 上该代码库的文件已全部下载到本地。
    本地客户端提交文件


    本地进行增加或修改操作。
    本地客户端提交文件

    本地客户端提交文件

    本地客户端提交文件

  2. 提交本地工作目录的修改到 Codeup。 完成本地修改后,提交代码库,命令如下:

    $ cd C:\codeup\workspace\my_repo
    $ git status              #检查本地工作目录的更改
    $ git add .               #加到暂存区
    $ git commit -m “xxx”     #提交本地仓库,并备注提交日志
    $ git push                #推送至CodeUp远程仓库
    

本地客户端提交文件

本地客户端提交文件

本地客户端提交文件 push 到 Codeup 成功后,登录 Codeup 可以查看提交记录,验证修改内容。 本地客户端提交文件
本地客户端提交文件

5.3. 云效平台对 Codeup 分支管理

进入云效平台,在配置管理中可进行代码权限库和代码分支的管理,实现高效开发管理。

5.3.1 本地云效代码权限配置

【操作步骤】:

  1. 点击配置管理 > 权限管理 > 仓库权限 > 创建分支管理
  2. 输入仓库访问信息并保存(支持账号密码、公钥私钥和 token 三种权限类型,本文以账号密码为例)。分支管理

5.3.2 拉取分支开发

拉取分支前,需要先注册应用并新建变更集。

【操作步骤】:

  1. 点击配置管理 > 应用 > 应用管理 > 注册应用拉取分支开发
  2. 输入应用信息,详情可参考 “配置管理” 模块应用注册详细步骤。 注意: 1)开发方式(trunk 和 branch),若选择 trunk,则不会在 Codeup 创建分支。 2)代码路径:在 Codeup 中复制“克隆/下载”地址,选择 “ssh” 时,代码权限仓库应选择 “账号密码” 类型,否则会提示 “没有权限”。拉取分支开发
  3. 点击配置管理 > 变更集 > 新建变更集以创建变更集。拉取分支开发
  4. 开发拉取分支进行开发。拉取分支开发 备注:点击变更集列表 > 申请变更 > 选择应用 > 拉取分支,拉取分支时可创建新分支或选择已有分支,选择创建分支并拉取成功后,在 Codeup 会生成相应的分支。拉取分支开发
    拉取分支开发
    拉取分支开发

5.3.3 开发人员开发

开发人员在以上过程中产生的分支上进行开发并提交(可参考章节 5.2 Codeup 文件提交)。


6. 其他平台代码库迁移至 Codeup

6.1 迁移前的准备

  • 获取原代码库地址(本案例以 gitee 为例)。
  • 客户端安装 git 客户端(Git Bash)。

6.2 代码库迁移

【方案一】:基于 bare 的版本库(bare 仓库为版本库,不带工作目录)。 【方案二】:非 bare 仓库。

6.2.1 方案一:基于 bare 的版本库

【操作步骤】:

  1. 打开 GitBash,从原始仓库 clone 一份 bare 仓库到本地客户端。

    $ cd C:\codeup\workspace
    $ git clone --bare git@xxx.com/testspringcloud.git
    

    基于bare的版本库
    基于bare的版本库
    基于bare的版本库

  2. 在 Codeup 上创建一个空白项目(不要勾选使用 Readme 初始化项目,这会导致项目内新建文件,并且有提交记录)。基于bare的版本库

  3. 复制 Codeup 上新建库的“克隆/下载”地址,在客户端将第一步 clone 的 bare 库推送到 Codeup 新库地址,并删除本地 testspringcloud.git 目录。

    $ git push --mirror http://xxx.com/codeup/xxx/moved_repo1.git
    

    备注:项目分支、标签、提交历史记录等全部迁移成功。

    基于bare的版本库

    基于bare的版本库
    基于bare的版本库

    6.2.2 方案二:非 bare 的版本库

    【操作步骤】:

  4. 打开 Git Bash,从原始仓库 clone 一份代码库到本地工作目录。

    $ cd C:\codeup\workspace
    $ git clone git@xxx.com/testspringcloud.git
    

    非bare的版本库

  5. 逐个切换所有分支,并拉取各个分支代码。

    $ cd testspringcloud   
    $ git checkout dev
    $ git pull
    $ git checkout test
    $ git pull
    

    备注:clone 默认拉取 master 分支,其他各分支需要逐个 checkout,否则 push 时只会推送 master 一个分支到 Codeup。

  6. Codeup 上创建一个空白项目(不要勾选使用 Readme 初始化项目,这会导致项目内新建文件,并且有提交记录)。

  7. 复制 Codeup 新库地址,建立本地录和 Codeup 新建仓库的连接。

    $ git remote add new-testrepo http://xxx.com/codeup/xxx/group01/moved_repo2.git
    
  8. 将客户端本地库推送到 Codeup 新库地址。

    $ git push new-testrepo --all
    $ git push new-testrepo --tags
    

    非bare的版本库

    非bare的版本库


7. Codeup 的分支保护与合并

7.1 分支保护

7.1.1 默认分支保护

默认分支被视为代码库中的基本分支,是所有 clone、代码提交和合并请求的目标分支。 默认分支不能删除,仓库管理员可修改默认分支。分支保护与合并 管理员和开发人员可以删除非默认分支。分支保护与合并

7.1.2 分支保护规则

仓库管理员可以设置分支保护规则,匹配保护规则的分支不能删除。分支保护与合并

分支保护与合并

分支保护与合并

7.2 代码合并

在分支合并前,通常需要经过测试、代码评审等流程以保证代码质量,Codeup 提供了代码合并控制流程。下面以 “dev”分支合并到主干“master”为例,说明如何使用 Codeup 进行代码合并(管理员账号:polly,开发账号:boliucx)。

7.2.1 普通评审合并模式

【操作步骤】:

  1. 设置分支保护规则。点击分支设置 > 编辑保护分支规则,在保护分支规则编辑页面选择分支允许合并可设置为仅支持管理员合并,去掉勾选开发者,开启“要求合并前通过代码评审”。普通评审合并模式

  2. 设置具体的评审要求。普通评审合并模式

  3. Dev 完成开发后新建合并请求。 备注:新建合并请求之后创建的合并规则,不会在该合并请求中生效。普通评审合并模式

    普通评审合并模式

  4. 代码评审。评审通过人数满足之前设置的 “评审通过的最少人数” 条件后,可进行合并操作。 备注:不允许合并请求发起人评审通过自己的代码。普通评审合并模式

    普通评审合并模式

  5. 如果没有代码冲突则合并成功,否则开发人员需要先解决冲突后再提交。普通评审合并模式

7.2.2. CodeOwner 评审模式

【操作步骤】:

  1. 在分支保护规则编辑页面,选择分支 > 开启 “要求合并前通过代码评审” > 评审模式选择“CodeOwner”CodeOwner评审模式
  2. dev 分支根目录增加 “CODEOWNERS” 文件,并编辑评审人。CodeOwner评审模式
    CodeOwner评审模式
  3. dev 分支修改内容后提交到 Codeup。
  4. 新建合并请求(此处默认不选择其他评审人,详情可参考章节 7.2.1 普通评审)。 CodeOwner评审模式
  5. 代码评审通过,合并(详情可参考章节 7.2.1 普通评审)。CodeOwner评审模式

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文