如何解决Git分支之间的文件命名冲突?

时间:2020-04-09 12:45:45

标签: git git-merge git-merge-conflict

1)分支firstBranch

/frontends/myfrontend/utils/myfile.js重命名为/frontends/myfrontend/utils/myfile2.js


2)分支secondBranch

/frontends/myfrontend重命名为/frontends/myfrontend2


现在,我想将firstBranch合并到secondBranch中,同时保留两个重命名(因为一个重命名位于父目录中,另一个重命名于子文件中)。

重命名策略(find-renamesrename-threshold)仅用于识别已重命名的更改内容,但是我认为情况不同。内容是一样的,只是git不允许我通过应用两个重命名来解决合并。

我应该如何处理?我知道git对目录不了解,但是我认为这是一个真实的用例。

1 个答案:

答案 0 :(得分:0)

当您将它们合并时,如果Git检测到从合并基础提交到secondBranch 的尖端提交的所有重命名,则(单个)重命名从合并基础变为firstBranch的提示中,您会遇到重命名/重命名冲突

在适当地完成了所有重命名和组合的 rest 后,合并将停止。您的工作是完成事情。只需完成一件事,至少从此特定冲突中即可:您必须为此文件选择所需的名称。

以所需的名称写入所需的文件内容-这可能需要使用mv重命名工作树中的文件,和/或如果内容不是您想要的内容,则编辑该文件-然后使用git addgit rm根据需要/适合于更新Git的索引,以便以所需的名称存储可能更新的文件。现在,您已经解决了重命名/重命名冲突。

也解决所有其他冲突,以便解决所有冲突,并且Git的索引包含您想要作为合并结果的快照。然后运行:

git merge --continue

完成合并。