我有一个主分支。那里有一个名为“ a”的文件。我添加并提交文件。然后,我创建一个名为“ f-a”的分支。我在该文件中创建一个名为“ f-a”的文件,其中包含在master分支期间创建的“ a”文件。添加并提交这些更改。同时,其他一些开发人员在自己的分支中重命名了“ a”文件,并合并回master分支。 然后,我移回master分支并将f-a分支合并到其中。 Boom中包含“ a”文件,现在称为... mmm,可以说...“ B”。
有没有办法解决这种问题?
答案 0 :(得分:0)
Git在重新定级或合并时有一个选项,称为find-renames
。
检测重命名。如果指定了n,则它是相似度索引的阈值(即,与文件大小相比的添加/删除数量)。例如,-M90%表示Git 如果90%以上的文件未更改,则应将删除/添加对视为重命名。如果没有%符号,则该数字应以小数点的形式读取,并带有小数点 在它之前。即-M5变为0.5,因此与-M50%相同。同样,-M05与-M5%相同。要将检测限制为完全重命名,请使用-M100%。默认相似度 指数是50%。
因此,您可以尝试合并到主版本中
git rebase --strategy-option="find-renames=20" master
这将在重新命名到master分支上时检测到重命名时将阈值设置为20%,其中20%的相似度将认为两个文件相同并进行重命名。