找回密码
 立即注册

QQ登录

只需一步,快速开始

phoben 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-4-28 10:33  /   查看:2066  /  回复:5
本帖最后由 phoben 于 2024-4-28 14:33 编辑

随着项目越来越多,对于一些复杂项目,我们肯定是要用到Git的多分支方案来管理项目开发,尤其在系统进行版本升级时,在这期间原版本还需要持续进行维护、优化、BUG修复,所以Develop分支的作用就十分重要。

按照官方的最佳实践指导 我们采用的是master + develop+hotfix 三分支模式,但在经过几个项目的实际运作下来,还是存在问题
具体问题表现在下图的第6点




在实际场景中,即使只有master和develop两个分支,
合并也来没有成功过,强行使用Git命令合并,会造成master工程报错打不开。
解决的方法是手动另存为本地文件,然后通过"创建工程"覆盖到master。

  1. git push origin develop:master -f
复制代码



因为master与develop分支所部署的环境不同,所以部分逻辑、命令参数、认证方式等有所不同,这样直接将develop覆盖到master,会导致每次都要手动把这些命令再更正一次,工作量比较大。

如果能像代码一样的合并逻辑,我们可以选择哪些要合并,哪些采用原本的,就比较完美了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
Brian.Zhang
超级版主   /  发表于:2024-4-29 12:15:06
沙发
超哥,看到您的说的部分逻辑、命令参数、认证方式等有所不同。对于这些,是可以从设计器签入时选择是否忽略的,如下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-4-29 12:18:14
板凳
Brian.Zhang 发表于 2024-4-29 12:15
超哥,看到您的说的部分逻辑、命令参数、认证方式等有所不同。对于这些,是可以从设计器签入时选择是否忽略 ...

不是这个意思,假设:我develop分支参数一直都是A,只有A才能跑通,而master分支因为部署在内网,参数必须为B。
我在更新完版本后,将develop合并到master后,master的工程就被被覆盖,参数也就成了A,和签入没有关系。
回复 使用道具 举报
willning
超级版主   /  发表于:2024-4-29 13:52:47
地板
本帖最后由 willning 于 2024-4-29 14:06 编辑
phoben 发表于 2024-4-29 12:18
不是这个意思,假设:我develop分支参数一直都是A,只有A才能跑通,而master分支因为部署在内网,参数必 ...

在设计器提供合并功能之前,可以先这么弄:


把这个参数做成全局变量,在发布后的应用管理界面上修改。如果涉及的很多,也可以在全局变量中只放一个:ENV,然后在活字格工程里面,做条件判断,如ENV是local、cloud,走不同的逻辑。


认证模式这种无法放在全局变量里的,就比较麻烦了。
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-4-29 14:15:35
5#
willning 发表于 2024-4-29 13:52
在设计器提供合并功能之前,可以先这么弄:

是的,全局变量一定程度上可以解决这种情况,不过有些参数都是下拉框、单选框等,不能直接引用变量,需要用IF做判断,同时也会造成逻辑变得更加复杂。

最不济,我每次重新设置便是,倒也不是因为这个问题无法运行,只不过想着提出来给官方做个参考,看未来是否考虑将Git代码合并的问题优化优化,从源头上解决。
回复 使用道具 举报
willning
超级版主   /  发表于:2024-4-29 15:15:49
6#
phoben 发表于 2024-4-29 14:15
是的,全局变量一定程度上可以解决这种情况,不过有些参数都是下拉框、单选框等,不能直接引用变量,需要 ...

还可以在数据库中建一个OptionSettings表,专门存配置项。
hard code配置信息,而且还是有明确的环境依赖的配置信息,肯定不是好做法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部