Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件移动,git mv显示为已删除/已添加_Git - Fatal编程技术网

文件移动,git mv显示为已删除/已添加

文件移动,git mv显示为已删除/已添加,git,Git,我在Git repo的特定目录中有许多文件。我对所有文件进行了不同程度的更改,添加了它们,然后通过gitmv将文件移动到一个新的子目录。现在,当我查看git状态时,我看到: renamed: path/file1.ext -> path/to/file1.ext new file: path/to/file2.ext deleted: path/file2.ext file2.ext确实比file1.ext做了更多实质性的更改,但仍然。。。为什么file2.ext没有显示

我在Git repo的特定目录中有许多文件。我对所有文件进行了不同程度的更改,添加了它们,然后通过
gitmv
将文件移动到一个新的子目录。现在,当我查看git状态时,我看到:

renamed:    path/file1.ext -> path/to/file1.ext
new file:   path/to/file2.ext
deleted:    path/file2.ext
file2.ext
确实比
file1.ext
做了更多实质性的更改,但仍然。。。为什么
file2.ext
没有显示为重命名


看起来git似乎有一些变化阈值。如果对某个文件的更改超过某个百分比,则不要将其视为重命名文件,而是将其视为删除的旧文件和创建的新文件。

这是正确的。Git不跟踪重命名;相反,它着眼于文件内容如何变化以及如何从一个位置移动到另一个位置。如果一个文件消失,并且有足够的内容以新名称显示,git会将其显示为重命名。(无论何时查看提交历史记录,这都是动态完成的。)

发件人:

-M[]

--查找重命名[=]

检测重命名。如果指定了
n
,则它是相似性索引的阈值(即与文件大小相比的添加/删除量)。例如,<代码> -M90%<代码>意味着如果超过90%的文件没有改变,Git应该考虑删除/添加对是重命名。如果没有
%
符号,则数字将被读取为小数,前面有一个小数点。即,
-M5
变为0.5,因此与
-M50%
相同。类似地,
-M05
-M5%
相同。要将检测限制为精确重命名,请使用
-M100%
。默认的相似性指数是50%