我有一个功能和master分支。功能部件和master分支上的代码相同。我正在功能分支中进行更改,并创建PR到Master分支。我遇到合并冲突。
我正在执行以下操作:
git checkout master
git pull origin <feature branch>
git commit
git pull origin HEAD
在大多数情况下,自动合并会失败。我需要手动克隆master分支,并且需要将feature分支中的更改手动复制到master分支,然后将其推送到master。
答案 0 :(得分:0)
我建议您遵循正确的顺序处理合并。
git checkout master
git pull
git checkout feature
git pull
git checkout feature
git merge master
要回答您的问题:
要使自动合并成功需要做什么?
没有。如果可以进行自动合并,则会自动完成。现在,当我手动解决合并冲突时,我正在执行PR和 现在错误消息是“无法将PR创建为主节点和分支 是最新的”。创建PR然后合并的必要步骤 给主人?
看来您的功能分支只是指向 主分支。它没有其他更改。可能是 其他一些团队成员已经创建了PR和您的功能 分支与主分支保持最新。
答案 1 :(得分:0)
如果您说“要素和主分支上的代码相同”,是否意味着唯一的直接编辑发生在要素分支上,然后忠实地合并到母分支中?如果是这样,则应该没有任何冲突。
在您手动更改了在功能分支中更改的master中相同的代码位置之后,情况发生了变化。这些当然是相互矛盾的编辑。 (如果它们与字节完全相同,我认为git不会看到冲突,但是我不确定,这可能很难实现。)
问题是这些冲突一次又一次地弹出,因为您的手动接管未注册为合并。因此,git尝试应用相同的旧文件(手动合并),一次又一次地提交。
这里可能有用的是git的rerere功能。它注册并存储用户提供的冲突解决方案,并将其应用于以后遇到相同冲突的所有提交。因此,我建议激活rerere,以一种解决所有冲突的正式方式进行合并,从那时起,所有将来的合并都应按预期的方式进行。
或者(我实际上会建议这样做),您可以简单地重新开始:从当前的母带头开始设置一个新的功能分支,并避免旧的合并/编辑混乱带来的所有问题。