压缩提交时将文件标记为“重命名”

时间:2016-11-17 06:18:44

标签: git

当我在存储库中移动跟踪文件时,git会在提交信息“文件xxx从yyy重命名”中显示。

现在我正在尝试压缩两个提交,其中文件在第一次提交时被删除,并在第二次提交中再次添加(在不同的目录中)。在结果提交中,我没有看到“重命名”,只有“已删除”和“已添加”。

如何帮助git理解这个并为此文件显示“重命名”?

1 个答案:

答案 0 :(得分:2)

Git在进行比较时发现(检测)动态重命名

有很多选项可以控制Git是否会尝试,如果是,它会考虑什么?#34;足够相似"使其认为文件重命名。

如何让Git呈现重命名取决于:

  • 你的Git版本。 2.9及更高版本默认情况下会为git diff启用重命名检测。
  • 您正在使用的命令。 Git默认为git merge启用了重命名检测功能,即使在较旧版本的Git中也是如此。 git status命令始终重命名检测。
  • 文件的相似性。完全匹配很容易,并且最常见。
  • 您提供给命令的选项。例如,请参阅Git doesn't detect rename when file has been modified significantly after move。这些也取决于命令;例如,虽然git status始终启用了检测,但它没有配置阈值。
  • 配置条目(在您的全局Git配置和/或每个存储库配置中)。您可以通过设置git diff来覆盖Git的diff.renames启用/禁用默认值,并通过设置diff.renameLimit覆盖其重命名检测队列中的最大文件数。

有关git diff重命名检测的更多信息,特别是Git用于确定两次提交的文件身份的方法 - 请参阅Git Diff of same files in two directories always result in "renamed"