4

当使用 重命名文件时git mv,提交将显示 rename from 和 rename to,并且在 pull request 中显示相同,这很好。但是当一个文件被git mv编辑然后更改时,看起来有一个阈值,当更改的行数超过它时,它将不再显示为重命名,而是显示为删除旧文件并添加新文件。所以我的问题是这个阈值是一个定义明确的数字吗?还有没有其他方法可以让它变得更好,主要是因为在 pull request diff 中,当两个文件不考虑重命名时,diff 不会并排显示,这使得审查变得困难。

4

1 回答 1

4

它基于差异相似性指数

如果n指定,它是相似性指数的阈值(即添加/删除量与文件大小相比)。

例如,-M90%意味着如果超过 90% 的文件没有更改,Git 应该将删除/添加对视为重命名。

如果没有%符号,数字将被读取为分数,前面有小数点。即,-M5变为0.5,因此与 相同-M50%
同样,-M05与 相同-M5%

要将检测限制为精确的重命名,请使用-M100%.

默认相似度指数为 50%。

更一般地说,最好先 mv/rename 一个文件,提交,然后进行一些修改。
你可以做这两个是说与文件的其余部分相比修改很小(典型情况:重构只更改包的名称)

于 2019-01-08T05:41:03.303 回答