我需要了解当前 master 和分支 new_branch 所代表的两个版本之间的文件更改。通常,如果两个分支中的路径/名称相同,我会运行以下命令。
git diff new_branch --路径/文件
当两个分支之间的路径/文件不同时,我该怎么办?
我可以回退并创建另一个克隆存储库并签出 new_branch。然后执行 unix 的 sdiff。我只是想知道 git diff 的作者是否预见到了这种情况并内置了一些东西来处理它。
——谢谢,——小迈克。
答案1
Git 没有真实的移动/重命名/复制文件的概念,但是它有启发式方法来尝试检测这些情况,然后以一种好的方式显示它们。
也就是说,您可以git-diff
通过传递标志来指示使用这些启发式方法来检测重命名-M
。有了它,您可以尝试
git diff -M new_branch -- new-path/file old-path/file
看看它是否适用于您的特定情况。此外,git diff -M --stat new_branch
还会为您提供更改的概述,并向您展示 Git 的启发式方法拾取了哪些重命名。