Git 开发流程
🏷️ Git
公司上个月最终决定把项目管理工具全部从 SVN 换到 Git,随之而来的是由于部分人员不会使用导致的代码提交及管理的混乱。
于是基于公司目前的开发、测试、发布流程,我起草一份 Git 的开发流程手册。经几番讨论及修改后,最终制订了如下流程。分享出来供大家参考。
Git 开发流程
创建发布用分支和测试用分支,创建开发创建分支用的基准标签(Tag)。(开发组长)
- 发布用分支名:
{发布编号}_RELEASE
注意:发布用分支必须设置为受保护分支,仅主程序员允许合并,且无人(no one)可以推送。 - 测试用分支名:
{发布编号}_TEST
- 基准标签名:
T_{发布编号}_BASE
- 发布用分支名:
开发基于上面的基准标签,以任务管理中的工作项编号为单位创建开发用分支。(开发)
- 开发用分支名:
{发布编号}_{工作项编号}
- 开发用分支名:
开发在各任务对应的分支上完成任务后提交并推送。(开发)
开发将该任务合并到测试用分支后,创建测试用标签并发布到线下测试环境。(推荐在 SourceTree 上操作)(开发)
- 测试用标签名:
T_{分支名}_{番号}
- 测试用标签名:
测试通过后,测试将该任务的分支合并到发布用分支(推荐在 GitLab 上操作)。(测试)
若合并时出现冲突,找该任务的开发协助。
开发到测试的机器上执行本地合并。
合并在 SourceTree 上执行,过程和合并到测试分支相同。若测试未通过,则重复上面的第 3 - 4 步。
测试在发布用分支上创建标签,并发布到线上测试环境。(测试)
- 线上测试用标签名:
T_{分支名}_{番号}
- 线上测试用标签名:
测试在正式发布后删除两个发布版本之前的旧分支。(测试)
删除时需确认该任务是否已经测试通过并发布了。
测试在正式发布后将当前发布分支合并到 master 分支。(测试)
开发组长在正式发布后再次执行上述的第一步操作。(开发组长)
附
附 1. 预定发布但实际测试未通过的任务如何处理?
开发在该分支最新提交的基础上创建新分支 {新的发布编号}_{工作项编号}
。
注意:一定不要忘记创建新分支以免被误删。
附 2. 线下测试通过但线上测试未通过时如何如理?
案 1:推迟发布时间。
案 2:新建一个发布用分支(
{发布编号}_RELEASE_{番号}
)并将本次测试通过的其它任务分支依次合并过来。
附 3. SourceTree 的安装
- 下载安装文件(https://www.sourcetreeapp.com/)
- 安装是第一步选择 Bitbucket 账户,并按照打开的网页注册账户。
- 注册成功后选择 返回上一步 并再次选择 Bitbucket 时会自动打开授权的网页。授权后安装程序会自动进行到下一步。
- Mercurial 也是一个版本管理系统,我们没有使用,可以取消勾选。
- 更多选项中推荐的自动转换回车换行的建议勾选。
- 之后默认安装即可。
附 4. 如何设置受保护分支?
附 5. 如何在 SourceTree 中关联 GitLab 的账户?
在 GitLab 的 用户设置 → 访问令牌 中创建个人访问令牌。
保存新创建的令牌(后面会使用到)。
在 SourceTree 中选择菜单 工具 → 选项 → 验证,点击 添加 按钮添加一个账户。
在弹出的 编辑托管账户 窗口中填入账户信息。
- 托管服务器:GitLab CE
- 托管 URL:http://192.168.0.113
- 首选协议:HTTPS
- 验证:Personal Access Token
击 刷新 Personal Access Token 按钮。
在弹出的 Windows 安全 窗口填入用户名和密码。
- 用户名:第 1 步创建个人安全令牌时填入的用户名
- 密码:第 2 步生成的个人安全令牌
点击 确定 按钮 自动返回 编辑托管账户 窗口并会显示 认证成功 的状态。
再次点击 确定 按钮。
在 New Tab → Remote → Git Lab CE 账户 中 Clone 项目。
Clone 时的可以设置本地目录、本地项目名和检出的分支等。
附 6. 如何创建分支?
右键
BASE
标签对应的提交,选择 分支 操作。输入创建的新分支名后,点击 创建分支 按钮。
其它选项默认即可。
当前的分支名不影响新创建的分支。
检出新分支 默认是勾选的。如果当前分支有改动未提交,可能会导致切换到新分支时报错。
注意: 此时新分支已经创建好了,提交 或 贮藏 当前分支的修改后直接切换到新分支即可,无需再次创建分支。
附 7. 如何创建标签?
右键需要创建标签的提交,选择 标签 操作。
添加标签。
- 填写 标签名
- 勾选 推送标签到 origin
如果忘记勾选 推送标签到 origin,可以右键选择本地标签,点击 推送到 → origin 。
附 8. 如何合并分支?
切换本地仓库到需要合并到的目标分支。
如要合并任务分支 V2019007_3_T00042103 到测试分支 V_2019007_3_TEST ,则需要先切换到 V_2019007_3_TEST 分支。
点击菜单上的 合并 按钮。
在弹出的窗口选择 需要合并的源分支,选好后点击 确定。
合并成功后会自动创建一个提交。
合并失败时,有冲突的文件可在 文件状态 中查看。
右击有冲突的文件,选择 解决冲突 → 打开外部合并工具 。
解决冲突后点击 标记为已解决 按钮。
移除 合并后残留的 orig 文件。
提交合并后的修改。
附 9. 如何设置外部合并工具?
选择菜单 工具 → 选项 中的 比较 标签。
外部对比工具 和 合并工具 均选择 TortoiseMerge。
这个就是以前 SVN 中使用的合并工具。