在执行git push时,警告“diff.renamelimitvariables”

我推送本地提交到远程git服务器,并得到以下警告消息:

remote: warning: only found copies from modified paths due to too many files. remote: warning: you may want to set your diff.renamelimit variable to at least 19824 and retry the command. 

但实际上我已经将diff.renamelimit设置为0(我认为零意味着无限,对吧?)。

 $ git config --list ... diff.renamelimit=0 

那么我该怎么做才能避免这个警告呢? 谢谢。

文档没有提到0作为diff.renamelimit的特殊值。
所以你应该把这个限制设置为build议的值。
或者你可以尝试彻底closures重命名检测。 ( git config diff.renames 0

你会在这个博客文章“ Confluence,git,rename,merge oh my … ”中find类似的例子:

正如已经提到的那样,git会在这个事实之后尝试检测文件重命名,例如,当使用git loggit diff/merge
当试图检测重命名时,git区分了精确重命名和不精确重命名,前者是重命名而不改变文件内容,后者重命名可能包括对文件内容的更改(例如重命名/移动Java类)。
这个区别是重要的,因为用于检测精确重命名的algorithm是线性的并且将始终执行,而不精确重命名检测的algorithm是二次的( O(n^2) ),并且如果文件数目改变超过git,则git不会尝试执行此操作一定的阈值(默认为1000)。

由于受到最近重组影响的文件数量超过了这个阈值,git只能放弃合并解决scheme。 在我们的情况下,我们可以通过改变阈值来避免手动合并parsing

 git config merge.renameLimit 999999 

merge.renameLimit是什么意思

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

来源: https : //git-scm.com/docs/git-merge