本文来自于南京正厚陈琦明老师
由于目前使用的SVN代码管理存在在分支管理困难的情况。建议公司采用Git对代码进行管理。下面详细说明公司如何使用Git对代码进行管理。
一 仓库和分支建立
100001.1 首先创建V3.0项目两个仓库,并将本地项目文件上传。
默认的会出现stable分支。为了开发和管理需要,可以在仓库上建立两个长期分支:主分支stable和开发分支develop。日常开发工作是在develop分支上完成。然后经过本地测试通过后,周期性将develop分支合并至stable分支。用stable分支来提供周期性发布需求和bug说明。Git版本的运用流程如图示:
100001.1 任务安排处理流程
A、每个月对V3.0版新建一个里程碑(V3.0_202109),即是每个月发布的版本号。根据这个月生成的版本号,通过新建Issue来建立需求或BUG可以记录在这个版本号中,并指派对应的开发人员。当被指派的开发人员登录Git服务器后,在Issue菜单中可以查到分给自己的任务。创建任务流程如下图:
B、Git版本管理服务代码提交过程详述:
开发人员得到任务后,通过IDEA工具开发代码完成后,并通过Git插件提交代码,并创建合并请求,管理者(Master)审核代码为其开发的代码合并到develop分支中。测试人员拉develop分支进入测试环境服务器,进行测试,测试通过后,再由管理者创建合并请求,合入stable分支,再让测试人员拉取stable分支给现场实施人员发布到生产线上。当开发人员提交代码merge到develop分支时,发现有冲突时。注意:如果出现冲突代码合并失败现象,请客户端用户重新pull拉取远程分支develop分支代码,检查所改写部分是否与别人改写的代码重叠导致冲突?协商处理,保留可用代码,再次提交。
Git版本管理的开发应用流程图如下:
Git版本的运用流程图二
二、 研发人员使用Git代码管理工具详述:
2.1 使用工具介绍:
客户端角色为开发者(Developer ),下载并安装Git-2.23.0-64-bit、TortoiseGit-2.8.0.0-64bit软件,默认安装。(如果没有安装包,我这边有。)
2.2 配置安装的TortoiseGit-2.8.0.0-64bit软件。
步骤显示如下:选中将要新建项目的目录右击,如下图:
2.3 配置Git项,通过各位的机器自行生成的ssh keys,两个文件,带后缀pub的文件为公钥,没有后缀的文件为私钥。私钥文件放入C:\Users\Administrator\.ssh目录中。
2.4 配置ssh.exe命令,进行网络联结。
通过我所给的用户名和密码,登录GitLab服务器网站(http://172.16.17.203),在此服务器中通过搜索找到SSH Keys功能项中,添加ssh key, 将公钥文件的内容复制到这个新建的这个Key中,有效期为30年。然后添加完成。
进入相应本地工程目录,右击选择Git Clone。(也可以通过Idea工具Git Clone项目的代码。)
复制出来红框中的项目链接串进行Git Clone
3.1 通过IDEA工具集成Git版本管理服务,IDEA集成Git的插件安装和使用说明详见:
https://www.cnblogs.com/shoshana-kong/p/10756499.html和下图插件安装。
3.2 为自己项目配置私有分支:
名称格式:Branch_姓名全拼的首字母(这私有分支提交到Git服务器上时,是临时分支会被审批者合并后删除的),以便管理者审批merge申请。在IDEA中切换成自己的私有分支进行工作。如下图:
3.3 完成开发任务后,选种要提交的文件,右击选择:
3.3.1 若新增文件需要先Git->Add,再做下面的步骤。
3.3.2 若修改文件只需要Git->Commit Directory,再做Git->Repository->Push,注意:要提交到origin:“私有分支名”上去。如下图:
3.3.3 创建合并请求(Create Merge Request),点击进入步骤,如下图示:
3.3.3.1 进入添加Person Access Token列表:添加,填写Git服务器URL:http://172.16.17.203,再填写Token编码,保存。(Token编码生成方法:用各自的用户登录Git服务器,选择右上角的用户名,点击“Edit profile”,找到Access Token创建它,填写名称,有效期30年,各种访问权限都勾选上,生成编码。立刻记录下来,否则会消失。)
3.3.3.2 再次打开“Create Merge Request”页面会展示下图内容,提交到远程分支develop上,由部长审核后合并代码到develop分支上去,但这个分支只是测试版不是上线版。测试版发布到测试环境上后,测试通过,再由项目上线负责人角色的帐号统一合并到远程分支stable,再做发布上线工作。部长角色或上线负责人审批合并请求的工作都是在git服务网站(控制台)上完成的。
3.3.3.3 当客户端的合并请求完成后,在Git服务网站上,通过这个项目的负责人(具有Master角色)的帐户登录,在Merge request页面中看到客户端提交的合并请求记录,点击进入,再点击合并安钮(Merge)代码自动合入,或review增量代码。注意:如果出现冲突代码合并失败现象,请客户端用户重新pull拉取远程分支develop代码,检查所改写部分是否与别人改写的代码重叠导致冲突?协商处理,保留可用代码,再次提交。