willning 发表于 2023-7-24 20:15:39

一看就会,超有用活字格技能:一百七十七、如何用Git处理开发和hotfix分支

本帖最后由 willning 于 2024-11-13 15:10 编辑

简洁版:引入低代码后,强烈建议对版本管理做简化,只保留hotfix和dev两个开放分支和一个master只读分支;hotfix上线时,首先将该分支替换到master分支,然后手动将hotfix的内容导入到dev分支;dev上线时,直接将该分支替换到master分支即可。一个冲刺(10个工作日)内能做完的实验性feature,可参照hotfix执行;更大规模的实验性feature建议新建一个活字格工程,再通过页面跳转、共享服务端命令等方式与主系统集成。
活字格支持Git的分支模型,您可以像写代码一样,利用分支功能,让低代码的工程管理更高效。但是,我们该如何处理因创建hotfix分支带来的版本冲突问题呢?接下来我们将以此为切入点,向大家介绍利用活字格配合Git做分支管理的技巧。

首先,我们需要明确一下,分支管理的方式方法与团队的规模、项目的可维护性要求以及成本投入紧密相关。但是对于企业级应用来说,分支管理需要满足以下几点基础要求:

[*]为了能够及时做hotfix,确保仓库中有一个分支(master)与线上环境实时保持一致
[*]为了降低操作更显,确保开发人员不得对master进行push操作,仅配置管理员有权操作该分支
[*]所有的签入日志均可查询

对于一个典型的企业级应用,分支管理中常见的操作清单,该清单针对小型团队做了简化,如果您的团队规模较小,也是初次接触git或敏捷开发,推荐您直接采用该清单的做法。

关键节点日期 事由 操作操作人
12023/07/01 正式启动开发从master分支创建develop分支 配置管理员(兼)
22023/07/15 测试完毕,准备上验证环境将develop分支合并到master分支配置管理员
3 2023/07/17 发现严重bug,需要开hotfix修复从master分支创建hotfix-20230717分支 配置管理员
42023/07/18 hotfix测试完毕,准备上验证环境将hotfix-20230717分支合并到master分支 配置管理员
52023/07/18将hotfix的内容手动添加到develop分支指定的高级开发
62023/07/30测试完毕,准备上验证环境将develop分支合并到master分支 配置管理员

节点5可以通过活字格的“导入活字格工程”来完成,不过强烈建议在操作完成后,与hotfix分支的开发人员做确认,并做相关测试,避免碰伤。


接下来是本帖的重点,即其中标红的分支合并操作该如何操作。如果您像操作java项目一样,利用pull request来做分支合并的话,在处理2、4时是没有问题的,但执行6的时候,即便在5中做了手动的内容合并,但您大概率还是会遭遇“有冲突,无法合并”的问题。此时,我们需要使用git命令行来完成分支合并操作。具体步骤如下:


[*]在执行合并的电脑上安装git和活字格设计器,安装git时记得勾选与Explorer集成,这样操作起来更方便
[*]在活字格设计器中打开需要合并的源分支(如节点6中的develop)。建议:与高级开发或项目经理再次确认确保分支内容无误。
[*]关闭设计器
[*]在“我的文档”中ForguncyCollaboration找到以git上应用名+分支名(如:hzg_git_demo-develop)来命名的文件夹,打开文件夹,在文件夹中点击右键,选择“Git Bash Here”(Windows 11中需要先点击右键菜单的“显示更多选项”),打开git命令行
[*]准备就绪后,给master分支解锁
[*]在git中执行命令git push origin develop:master -f
[*]为master分支加锁



上述命令行是关键,意思是让git将当前的文件夹中的git repo中develop分支推送到服务器端master分支,通过-f参数,让git在推送时强制替换master分支。执行完成后,你就会发现,master分支已经替换为develop分支的内容了。

特别提示:分支合并工作非常重要,建议安排专门的配置管理人员或由高级开发兼任。



需要注意的是,因为活字格支持“签出锁定”功能,在同一个分支内,不会出现两个人同时修改一个文件的情景,这大大降低了需要进行手动合并的概率,让我们仅需要在有版本上线时,才需要执行合并,降低合并风险的同时,大大简化了分支管理操作。


页: [1]
查看完整版本: 一看就会,超有用活字格技能:一百七十七、如何用Git处理开发和hotfix分支