当在两个分支上重命名时,Git未被检测为重命名

时间:2017-10-18 15:17:01

标签: git rename

许多问题被问及Git在内容更改后没有检测到重命名。 我有一个不同的问题: 在共同的祖先上有文件f_rename.txt。 在一个分支(发散)上,我将(仅限内容更改)重命名为f_rename_1.txt 在其他分支上仅重命名为f_rename_2.txt

合并两个分支时,我会遇到冲突:

enter image description here

我无法理解这种行为,即使我假设Git没有检测到重命名操作并且f_rename_1被认为是新文件,那么为什么它被标记为冲突?与什么冲突?

查看阶段文件,很明显,未修改的文件(相同的SHA1): enter image description here

我希望在Git conflict (rename/rename)

中重命名/重命名

我不是在问如何解决冲突!,但为什么Git会像这样行事。 我正在使用Git' 2.13.3.windows.1'

由于 波阿斯

1 个答案:

答案 0 :(得分:1)

您问题中包含的图片有git status输出。

您期望的CONFLICT (rename/rename):git merge命令打印。

在您现在看到的索引中留下的跟踪是索引的原始名称有一个第1阶段条目(没有第2阶段或第3阶段)其中一个新名称的一个阶段2条目(没有阶段1或阶段3条目),另一个新名称的一个阶段3条目(没有阶段1或阶段2条目) 。 git status命令打印该类跟踪的输出。

查看已接受的linked question答案,该答案显示相同的git status输出。 both deleted行只是稍后出现,因为输出按文件名排序,will-be-deletedw开头,后来出现。