我整合了大多数重复功能的java文件。因此,我将代码从一个类复制到另一个类,然后删除旧的(现在不必要的)文件。 当我想提交这个合并时,git会将其识别为文件重命名(可能是因为代码大多重叠),即使它不是。
有没有办法告诉git这个文件不应该被视为重命名,而是作为一次更新和一次删除?
答案 0 :(得分:2)
没有。移动/重命名不会与所有其他更新分开处理。这只是它如何显示的问题。 Git使用相似性索引来确定何时应该考虑重命名。默认情况下,这是50%,这意味着,如果您有一个删除和一个添加,并且至少有50%的相关行被共享,这被视为重命名。
您可以使用git-log
的-M
选项尝试不同的值:
<强> -M并[d; N&GT;] 强>
<强> - 发现 - 重命名[=&LT; N&GT;] 强>
如果生成差异,请检测并报告每次提交的重命名。要在遍历历史记录时通过重命名跟踪文件,请参阅--follow。如果指定n,则它是相似性指数的阈值(即,与文件大小相比的添加/删除量)。例如,-M90%表示如果超过90%的文件未更改,Git应将删除/添加对视为重命名。如果没有%符号,则该数字将作为分数读取,并在其前面加上小数点。即,-M5变为0.5,因此与-M50%相同。同样,-M05与-M5%相同。要将检测限制为精确重命名,请使用-M100%。默认相似性指数为50%。