我在 git 中有一个提交,它移动了很多文件(Git 识别这些是移动/重命名),然后在对其中一些文件进行了重大修改后再次提交。
一切都在单个提交的基础上按预期显示,但是当我将旧提交与分支上的最新提交进行比较时,git 将其中一些文件显示为已删除然后添加。
如果我执行以下命令,git 会正确地看到重命名和修改:
git log --follow --name-status -M branch -- */fileName
如果我执行以下操作:
git diff --follow -M branch -- */fileName
Git 告诉我整个文件被删除然后重新添加(红色和绿色文本)。
我认为正在发生的事情是,在进行 diff 时,git 不会遍历其间的所有提交,而是将第一个提交内容直接与最后一个提交内容进行比较,并且由于文件在一次提交中发生了重大变化,因此不被视为对原始文件的修改.
有没有办法在不明确列出文件的旧路径和新路径到 git 的情况下获得仅更改内容的正确差异?