更改git合并的相似性索引的阈值与所涉及的重命名(如差异上的-M [n] --find-renames [= n])

Igo*_*orK 9 git dvcs

我们在diff(log,show)和merge:期间有重命名检测启发式的一些配置选项:

diff.renameLimit 执行复制/重命名检测时要考虑的文件数; 相当于git diff选项-l.

diff.renames 告诉git检测重命名.如果设置为任何布尔值,它将启用基本重命名检测.如果设置为"复制"或"复制",它也会检测副本.

merge.renameLimit 在合并期间执行重命名检测时要考虑的文件数; 如果未指定,则默认为diff.renameLimit的值.

此外,我们还可以选择控制具有不同内容的文件何时被视为diff(log,show)的重命名:

-M [<n>] (或--find-renames [= <n>])

检测重命名.如果指定了n,则它是相似性指数的阈值(即与文件大小相比的添加/删除量).例如,-M90%表示如果超过90%的文件未更改,git应将删除/添加对视为重命名.

问题:如何控制合并相似性指数的阈值?它似乎只能作为命令行选项,diff而不是其他一些选项merge.甚至没有配置键diff.merge因某种原因不适用吗?

lhu*_*ath 6

如果您使用递归合并策略(默认)合并,您可以使用 rename-threshold 选项:

git merge -X rename-threshold=80 branch
Run Code Online (Sandbox Code Playgroud)