合并具有相似分支签名的分支

时间:2019-07-18 16:35:03

标签: git git-merge

我想将master分支合并到我的开发分支中。在开发分支中,我执行以下操作:

'''git pull origin master'''

当我这样做时,合并完成,但是,我注意到行为很奇怪。似乎master中的文件夹与我的分支是如此相似,它将它们视为相同的文件夹。

我尝试从master创建一个新分支,并将开发中的更改引入master,但是它做同样的事情。它将文件夹视为相同。

例如,我有以下内容:

大师 src-> folder1

发展 src-> folder2

合并后,我得到

发展 src-> folder1

代替

发展 src-> folder1 src-> folder2

编辑:文件名几乎是相同的,但是,文件的内容根本不相同。开发是用C ++完成的,因此名称空间可以清楚地说明谁是谁。

编辑:嗨,帮派,我尝试了建议,但是git仍在重命名。取而代之的是,我只是从master分支出来,并带来了所需的文件夹。现在,当我合并master时,它始终是最新的。感谢您的所有建议!

2 个答案:

答案 0 :(得分:2)

我相信此处要触发的功能是“重命名检测”。由于git仅记录快照,而不记录更改的意图,因此通过比较文件内容来检测文件移动,复制和重命名。在您的情况下,git似乎检测到的内容非常相似,以至于它可能表示一个分支或另一个分支上的重命名。

您可以禁用此行为:

答案 1 :(得分:0)

我相信您的问题是由于目录重命名检测引起的。您可以使用

将其关闭
git -c merge.directoryRenames=false pull origin master

这使得正常的重命名检测仍然有效。