代码分支迁移
分支策略介绍
在大中型企业,并不会简单的只使用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分支上拉取一个新分支进行开发及调试:
- 在代码托管服务页面,单击仓库名称进入代码仓库。选择“分支”页签,单击“新建分支”。在弹框中选择基于“master”,输入最新分支名“develop”,单击“确定”保存,完成基于master拉取新分支“develop”。
- 采用同样的方法,基于develop分支拉取新分支“featureA”。
- 在本地使用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分支,进行功能集成测试。
- 版本发布
develop分支功能验证成功后,拉取release分支进行发布验证,发布成功后,合入master主分支,打标签记录发布版本。
- 在“仓库分支”页面,基于develop分支拉取新分支“release”。
- 使用release分支进行相应的发布测试,发现问题后,可以进入要修改的文件,单击“编辑”,直接线上修改提交。
- release分支全部测试完成后,通过合并请求合入master分支。
- 在“标签”页面,单击“新建标签”,在弹窗中输入版本号,在master分支上打标签,记录版本发布。
仓库统计
DevCloud也提供了代码统计功能,从代码提交趋势,成员提交次数,以及语言占比等维度对代码仓库进行统计分析。关于仓库统计的操作方法请参见仓库统计。
