问题描述
我在一个团队中工作,前端开发人员和后端开发人员在单个功能分支上一起工作。当前,当正面和背面双方都产生合并冲突时,我们不知道如何解决合并冲突。
假设我们在仓库中有3个文件:
index.html
frontend_code.js
backend_code.py
frontend_code.js
和backend_code.py
都与master冲突(例如,另一个开发团队将某些内容合并为master)。
我们要保留两者:新功能代码和已经合并到主代码中的代码。这是一个问题。
后端开发人员只知道如何解决backend_code.py
,前端开发人员只知道如何处理frontend_code.js
并解决冲突,您必须处理整个代码库。
是否可以通过文件/文件夹解决冲突,以便每个开发人员都能自己解决?
解决方法
您遇到组织上的问题,并且正在尝试使用技术解决问题。一个类比,因为我讨厌糟糕的类比:
如何让我的两个员工同时使用同一把锤子?
现在有人可以说:
雇一个左撇子和一个右撇子,将前者放在后者的右边,现在他们可以握住它并锤在一起。
例如参见git partial merge,not whole branch,Resolve merge conflict only for some files and commit to branch for other teams to resolve theirs。
但是却遗漏了您只需要再购买一把锤子这一点。您的情况也是如此:在同一功能分支上工作的具有不同学科的人们会发生冲突,尤其是在将其他分支合并到他们的分支中时,因为他们不知道合并后代码应该是什么样子。 / p>
因此,我首先建议回到计划阶段,并确保后端团队在前端团队消耗工作之前完成其功能。如果很难做到这一点(通常在构建Web应用程序的商店中这样做),那么建议您再次拆分功能分支:const translation = [
{ English : [ ["English","engels"],["lblEng",""] ]},{dutch : [["dutch","nederlands"],["lblNl",""]]},{ second : [["second","seconde"],["sec",{minut : [["minut","minut"],["min",{ hour : [["hour","uur"],["h",{ day :[ ["day","dag"],["d",{ to : [["to","naar"],["to",{ from : [["from","van"],["from",""]]}
];
for (let word of translation) {
// get the keys and values and loop over them.
Object.entries(word).forEach(([lang,values]) => {
//values[0] returns the first index,so you can access it as follow:
let [first] = values;
console.log(lang,first);
});
}
,feature/foo/front-end
。这样,双方就可以在完成合并后合并彼此的更改,并解决他们知道如何解决的冲突。