Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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 add和git rm中关闭重命名检测_Git_Version Control - Fatal编程技术网

如何在git add和git rm中关闭重命名检测

如何在git add和git rm中关闭重命名检测,git,version-control,Git,Version Control,在执行git add和git rm时,如何阻止git检测文件重命名 我删除了工作树下不同路径的许多文件,如 tests/case066/chkpy000/active_set010.py .. tests/case068/chkpy000/active_set010.py tests/case069/chkpy000/active_set011.py .. tests/case086/chkpy000/active_set011.py tests/case087/chkpy000/active_

在执行git add和git rm时,如何阻止git检测文件重命名

我删除了工作树下不同路径的许多文件,如

tests/case066/chkpy000/active_set010.py
..
tests/case068/chkpy000/active_set010.py
tests/case069/chkpy000/active_set011.py
..
tests/case086/chkpy000/active_set011.py
tests/case087/chkpy000/active_set012.py
..
tests/case140/chkpy000/active_set012.py
我不是通过bash的
gitrm
而是通过
rm
删除了这些文件。 一些文件(即同名文件)的内容相同,而其他文件的内容彼此相似

我在那些已删除文件所在的目录中创建了新文件,如

tests/case066/chkpy000/active_set013.py
..
tests/case068/chkpy000/active_set013.py
tests/case069/chkpy000/active_set013.py
..
tests/case086/chkpy000/active_set013.py
tests/case087/chkpy000/active_set013.py
..
tests/case140/chkpy000/active_set013.py
所有新文件都具有相同的内容,并且它们与已删除的文件相似

现在,如果我尝试通过
git-rm
git-add
或通过
git-add--all-tests
进行阶段性更改,git似乎会在重命名时检测到一些更改,而其他的则会删除和添加。事实上,重命名是跨目录检测到的,这是没有意义的。我怎么能让git在不检测任何重命名的情况下简单地进行删除和添加呢

(如果有一种方法可以手动指定重命名对,那就更好了,但我很乐意只禁用重命名检测。)


编辑

我发现了一个类似的问题

在对这个问题的评论和回答中,以及在其他地方,我也看到重命名信息不是存储在git数据库中,而是从它生成的。所以,如果重命名分析的结果是错误的,也许我可以忽略它,但我感到有点不安


我最后做了两次提交,第一次提交创建的文件,第二次提交删除的文件。在我的情况下,这不会在每次提交时中断生成,但可能不适合其他情况。

您可以在键入以下内容后重试rm/add:

git config diff.renames false
但这可能只会影响git diff瓷器(,)。
否则,这只是使用的结果,并不影响Git存储这些(删除/添加的)对象的方式(相同的重命名文件仍然只存储一次)

如果您真的不希望在
git status
上进行这些重命名检测,那么一个解决方法是,正如OP最终所做的那样,进行两次提交:

  • 一个用于删除
  • 加一个

但是,
git log-C
可能会检测到重命名的文件。

git的重命名检测只是“UI sugar”,内部重命名与删除一个文件并添加另一个文件没有什么不同。为什么禁用重命名检测很重要?因为重命名检测的结果是错误的。如果它只是一个“糖”,不重要,而且是错的,我不想看到它。启用重命名检测是否仍然很重要?谢谢您的回答。我试过了,但结果没有改变。@norio这是意料之中的,因为Git基于内容,将删除内容相似性。