更改后指定Git重命名

Rob*_*ist 5 git

由于我通常使用的工具,在准备提交之前,我经常重命名文件并对其进行更改。

此时,git不再将文件检测为简单的重命名,因为文件内容不同。

我可以使用一个命令来指定某个文件,即使内容看起来有所不同,实际上它也是另一个文件的重命名吗?

Jak*_*ski 6

不在 Git 中。Git使用基于相似性启发式重命名检测(您可能需要启用它查看变化:git diff -M,或git config diff.renames true总是使用它(或git diff -Cgit config diff.renames copies,也检测副本)它检测到即时重命名。

它不进行重命名跟踪,也不在任何地方存储有关重命名的信息。


那是假设您没有忘记在提交中包含重命名的文件,即您使用了git mv <old> <new>... 这只是mv <old> <new> && git add <new>.

这意味着如果您使用其他工具(例如 IDE、文件管理器等)git add重命名文件,那么您需要创建新文件(重命名后),并删除旧文件(如果存在)(git rm将其完全删除,git rm --cached将其保留在工作目录)。