如何处理需要 PR 到 dev、staging 和 release 分支的功能的合并冲突?

问题描述

首先,我的问题很相似,但对此进行了扩展: How do we handle merge issues with pull requests

这是一个场景:一个功能分支是通过从我们的生产分支分支出来的。当功能准备好用于我们的开发服务器时,我们创建一个合并/功能到开发分支。同样对于登台和发布,合并/功能到登台和合并/功能到生产。我知道团队这样做是为了如果存在合并冲突,他们可以将暂存等合并到合并/功能中,并保留功能的干净副本,即:

production 
          \ 
           feature ------------------
                  \                  \ merge/feature-staging    ... etc. for release
                   merge/feature-dev             /          \
development----------/          \ development   /            \
                                                staging-------
             

链接文章一个答案,指出如果有任何内容合并到功能中以解决最终不应该存在的冲突(例如,在功能之前存在的另一个开发中的功能 B,而不是创建合并分支) A被合并了),那么你可以将A恢复到与开发合并之前,将开发恢复到B合并之前,并将A重新合并到开发中。但这似乎也意味着每个功能都需要集成到开发分支中。我是我们团队的新手,仍然不完全了解我们的开发环境和暂存环境之间的差异,但我问过我的团队为什么要这样做,他们基本上说“保持功能分支干净”。

无论如何,我很难在脑海中解决这个问题,我的基本问题是我基本上只是在进行权衡吗?其中 A)我们必须为每个环境中的每个功能创建合并分支(即使没有合并冲突),这很烦人但保留了功能分支,或 B)将每个环境分支合并到功能中,如果出现问题方式或故事发生变化,将所有相关分支恢复到功能进入环境分支之前?

选项 B 似乎需要更多的工作,而且似乎也意味着您必须在开发中进行集成,如果该集成在登台时中断,则还原所有内容。或者我们的团队做错了什么,选项 A 只是一种弥补我们集成/分支策略更深层次问题的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...