假设以下情况:
backend
当特性分支上的更改(由单独的开发人员创建)在后端代码和前端代码中发生冲突时,就会出现问题。单个开发人员(考虑到上述假设)无法单独进行更新-合并。

解决跨越前端和后端代码的合并冲突的最佳实践是什么?如果基于垂直特征分支的工作流是根本问题,那么在坚持前三个假设的同时,如何改进这种设置呢?
发布于 2020-08-29 00:50:47
有几种解决这个问题的典型方法:
我个人经历了其中的第一个和最后一个,我更喜欢前者,但取决于您的工作流程,这可能是不可能的。例如,如果您有多个开发路线(例如,维护和开发分支),第一个解决方案不会解决所有的问题,但它可能会减少问题。
通常,您越能设计您的工作流,使开发人员必须解决的冲突与他们自己正在处理的代码相关,您就会越成功。即使同一区域的其他开发人员能够解决那里的冲突,处理一段代码的开发人员也能够更快地完成,并且更有可能正确地完成,因为他们目前正在那里工作。
一种可能的技术方法是使用git imerge并将增量产品存储在某个地方作为参考,然后让每个开发人员恢复存储状态。不过,这可能很棘手,虽然可能,但不推荐。
发布于 2020-09-01 20:44:58
这里有一种直截了当的技术方法,可以将合并冲突解决分为两个不同的部分:
来自frontend分支的
backend上进行更改,一个只在backend上进行更改。master
feature合并为# starting situation :
*--X--*--*--Z <- master # X is the fork point
\ # Z is the tip of branch master
\
*--*--*--T <- feature # T is the tip of branch feature运行以下命令:
# from master, create a phony branch for backend :
$ git checkout -b backend master
$ git checkout X -- frontend/ # reset the content of 'frontend/' to its state in commit X
$ git commit
# similarly for fontend :
$ git checkout -b frontend master
$ git checkout X -- backend/
$ git commit你们现在有:
*--X--*--*--Z------
\ \ \
\ B F # B: tip of backend, F: tip of frontend
\
*--*--*--Tfeature中的两个部分合并:$ git checkout feature
# have one developper fix conflicts on :
$ git merge backend
# and a second one on :
$ git merge frontend注意:合并可以按任何顺序进行。
目前的情况是:
*--X--*--*--Z------
\ \ \
\ B F
\ \ \
*--*--*--T--*--M <- featuremaster
feature合并到feature中至于您的工作流,如果应该单独处理backend和frontend的工作,则需要有一些规则来在开发人员管理的分支中反映这一点。
@ on 2204在他的回答中给出了一些解决这个问题的方法:将后端的工作与前端的工作分开,尽快合并。
https://stackoverflow.com/questions/63631045
复制相似问题