git 更改文件名及其路径时,合并无法按预期工作(存在冲突)

git merge doesn't work as expected (present conflict) when changing file name and its path

假设我有 2 个分支:A 和 B(假设 B 是 A 的分支)

在分支A,我修改了一个文件的内容root/blabla/ariel1.txt

在分支B中,我把路径改成ariel1.txt并重命名了,所以现在叫ariel2.txt,它的路径是:root/yadayada/ariel2.txt

现在,我决定将分支 A 合并到分支 B。

git 如何知道将更改 ariel1.txt(在分支 A 中)合并到 ariel2.txt(在分支 B 中)?

我遇到过这种情况,git不知道如何正确处理。任何想法如何克服这种情况?

How does git knows to merge the changes ariel1.txt (in branch A) to ariel2.txt (in branch B)?

没有。当然, 会。您有独立移动或重命名文件的想法,作为与编辑文件正交的操作;但是 Git 没有。

如 Git 所见,在一个分支中编辑了文件;在另一个分支中,它被删除。这些是相互矛盾的命运,因为被编辑意味着 而不是 被删除;并且 Git 正确地求助于您来解决冲突。

解决方案:解决它并继续。合并冲突并不严重或不常见;学会应付他们。

Git 不存储重命名和副本。相反,它会检查文件是否具有相似的内容。如果分支 A 更改内容过多,Git 将不会将其识别为重命名。您可以使用 --find-renames.

控制它认为重命名的内容