【发布时间】:2017-10-28 18:27:43
【问题描述】:
当我执行 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
我不是通过 git rm 而是通过 bash 的 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 <deleted_files> 和git add <created_files> 或git add --all tests 进行更改,git 似乎会检测到一些更改为重命名,而其他更改则删除和添加。实际上,跨目录检测重命名,这是没有意义的。如何让 git 在不检测任何重命名的情况下简单地进行删除和添加?
(如果有办法手动指定重命名对会更好,但我会很高兴简单地禁用重命名检测。)
编辑
我发现了一个类似的问题,
How can I prevent git from thinking I did a rename
我还在 cmets 和对这个问题的回答中以及在其他地方看到重命名信息不存储在 git 数据库中,而是从中生成的。所以,如果重命名分析的结果错了,也许我可以忽略,但我觉得有点不安。
我最终进行了两次提交,第一次提交创建的文件,第二次提交删除的文件。在我的情况下,这不会破坏每次提交时的构建,但可能不适合其他情况。
【问题讨论】:
-
git的重命名检测只是“UI-sugar”,内部重命名与删除一个并添加另一个文件没有什么不同
-
为什么禁用重命名检测很重要?
-
因为重命名检测的结果是错误的。如果它只是一颗“糖”,不重要,而且是错误的,我不想看到它。启用重命名检测仍然很重要吗?
标签: git version-control