Codeup 最佳实践
1. 前言
本文将介绍如下几方面内容:
- 如何在 Codeup 上新建代码库,以及如何在云效平台管理代码分支。
- 如何将其他地方已有的 git 库迁移至 Codeup,并在云效平台对其进行分支管理。
- Codeup 的代码安全保护,如何保护代码分支、如何做质量合入的控制。
2. 最佳实践概述
一个应用模块开发设计完成后,便进入了迭代开发过程。开发人员的开发方式一般分为两种:主干开发和分支开发(常用),这两种开发方式均基于代码库。本文介绍了如何创建代码库、如何在云效平台配置代码库权限、以及如何拉取分支进行开发。
【适用场景】
- 全新项目开发,第一次使用 Codeup 做代码库管理
- DevOps 开发转型,已有代码库并且现在准备迁移至 Codeup
3. 前置条件
在执行本文操作前,请完成以下准备工作:
- 所在公司已购买并开通配置管理模块、Codeup 等。
- 已注册云效账号并完成认证,可以登录云效平台、Codeup 平台。
- 完成云效产品培训并通过相关考试。
- 加入云效的钉钉答疑群(联系本公司云效接口负责人入群)。
- 管理员已完成各种访问权限的配置。
4. 工具准备
- 本方案使用 Chrome 浏览器,需提前准备。
- 本地机器上安装 git 客户端(会同步安装 Git Bash 命令行工具)。
- 安装钉钉或企业微信。
5. Codeup 新建代码仓库
5.1 新创建代码库
入口 1:点击页面右上角菜单 “+ 添加代码库”。 入口 2:在欢迎页点击新建代码库。
【操作步骤】:
- 填写代码库名称、选择代码库组(控制开发人员对代码库的访问权限)和代码库公开性(私有/企业可见)。
- 完成后,点击确定,已创建的代码库在 “我参与的” 中可见。
5.2 Codeup 文件提交
代码库创建完毕后,便可进行代码或文件的提交。
5.2.1 在 Codeup Web 端提交文件
【操作步骤】:
- 点击代码库页面右上角的 “新建文件” 或 “上传文件” 增加文件(支持在线编辑和浏览器上传)。
- 输入文件名和文件内容,点击保存。
填写提交信息并提交。
5.2.2 本地客户端提交文件
【操作步骤】:
Clone 代码库到本地工作目录。 本地机器打开 Git Bash(也可用本机自带的命令行工具,本案例以 Git Bash 为例),进入工作目录开始 clone,命令如下:
$ cd C:\codeup\workspace $ git clone http://xxx.com/codeup/xxx/group01/my_repo.git
备注:若使用 http, 会提示输入用户名和密码,验证正确后开始 clone;若使用 ssh,则需要配置公钥和私钥。
本地工作目录增删改文件。 Clone 成功后,本地目录会出现名字为代码库名称的文件夹,进入该文件夹,Codeup 上该代码库的文件已全部下载到本地。
本地进行增加或修改操作。提交本地工作目录的修改到 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 本地云效代码权限配置
【操作步骤】:
- 点击配置管理 > 权限管理 > 仓库权限 > 创建。
- 输入仓库访问信息并保存(支持账号密码、公钥私钥和 token 三种权限类型,本文以账号密码为例)。
5.3.2 拉取分支开发
拉取分支前,需要先注册应用并新建变更集。
【操作步骤】:
- 点击配置管理 > 应用 > 应用管理 > 注册应用。
- 输入应用信息,详情可参考 “配置管理” 模块应用注册详细步骤。 注意: 1)开发方式(trunk 和 branch),若选择 trunk,则不会在 Codeup 创建分支。 2)代码路径:在 Codeup 中复制“克隆/下载”地址,选择 “ssh” 时,代码权限仓库应选择 “账号密码” 类型,否则会提示 “没有权限”。
- 点击配置管理 > 变更集 > 新建变更集以创建变更集。
- 开发拉取分支进行开发。 备注:点击变更集列表 > 申请变更 > 选择应用 > 拉取分支,拉取分支时可创建新分支或选择已有分支,选择创建分支并拉取成功后,在 Codeup 会生成相应的分支。
5.3.3 开发人员开发
开发人员在以上过程中产生的分支上进行开发并提交(可参考章节 5.2 Codeup 文件提交)。
6. 其他平台代码库迁移至 Codeup
6.1 迁移前的准备
- 获取原代码库地址(本案例以 gitee 为例)。
- 客户端安装 git 客户端(Git Bash)。
6.2 代码库迁移
【方案一】:基于 bare 的版本库(bare 仓库为版本库,不带工作目录)。 【方案二】:非 bare 仓库。
6.2.1 方案一:基于 bare 的版本库
【操作步骤】:
打开 GitBash,从原始仓库 clone 一份 bare 仓库到本地客户端。
$ cd C:\codeup\workspace $ git clone --bare git@xxx.com/testspringcloud.git
在 Codeup 上创建一个空白项目(不要勾选使用 Readme 初始化项目,这会导致项目内新建文件,并且有提交记录)。
复制 Codeup 上新建库的“克隆/下载”地址,在客户端将第一步 clone 的 bare 库推送到 Codeup 新库地址,并删除本地 testspringcloud.git 目录。
$ git push --mirror http://xxx.com/codeup/xxx/moved_repo1.git
备注:项目分支、标签、提交历史记录等全部迁移成功。
6.2.2 方案二:非 bare 的版本库
【操作步骤】:
打开 Git Bash,从原始仓库 clone 一份代码库到本地工作目录。
$ cd C:\codeup\workspace $ git clone git@xxx.com/testspringcloud.git
逐个切换所有分支,并拉取各个分支代码。
$ cd testspringcloud $ git checkout dev $ git pull $ git checkout test $ git pull
备注:clone 默认拉取 master 分支,其他各分支需要逐个 checkout,否则 push 时只会推送 master 一个分支到 Codeup。
Codeup 上创建一个空白项目(不要勾选使用 Readme 初始化项目,这会导致项目内新建文件,并且有提交记录)。
复制 Codeup 新库地址,建立本地录和 Codeup 新建仓库的连接。
$ git remote add new-testrepo http://xxx.com/codeup/xxx/group01/moved_repo2.git
将客户端本地库推送到 Codeup 新库地址。
$ git push new-testrepo --all $ git push new-testrepo --tags
7. Codeup 的分支保护与合并
7.1 分支保护
7.1.1 默认分支保护
默认分支被视为代码库中的基本分支,是所有 clone、代码提交和合并请求的目标分支。 默认分支不能删除,仓库管理员可修改默认分支。 管理员和开发人员可以删除非默认分支。
7.1.2 分支保护规则
仓库管理员可以设置分支保护规则,匹配保护规则的分支不能删除。
7.2 代码合并
在分支合并前,通常需要经过测试、代码评审等流程以保证代码质量,Codeup 提供了代码合并控制流程。下面以 “dev”分支合并到主干“master”为例,说明如何使用 Codeup 进行代码合并(管理员账号:polly,开发账号:boliucx)。
7.2.1 普通评审合并模式
【操作步骤】:
设置分支保护规则。点击分支设置 > 编辑保护分支规则,在保护分支规则编辑页面选择分支,允许合并可设置为仅支持管理员合并,去掉勾选开发者,开启“要求合并前通过代码评审”。
设置具体的评审要求。
Dev 完成开发后新建合并请求。 备注:新建合并请求之后创建的合并规则,不会在该合并请求中生效。
代码评审。评审通过人数满足之前设置的 “评审通过的最少人数” 条件后,可进行合并操作。 备注:不允许合并请求发起人评审通过自己的代码。
如果没有代码冲突则合并成功,否则开发人员需要先解决冲突后再提交。
7.2.2. CodeOwner 评审模式
【操作步骤】:
- 在分支保护规则编辑页面,选择分支 > 开启 “要求合并前通过代码评审” > 评审模式选择“CodeOwner”。
- dev 分支根目录增加 “CODEOWNERS” 文件,并编辑评审人。
- dev 分支修改内容后提交到 Codeup。
- 新建合并请求(此处默认不选择其他评审人,详情可参考章节 7.2.1 普通评审)。
- 代码评审通过,合并(详情可参考章节 7.2.1 普通评审)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论