当路径改变时,两个分支之间的 git diff

Mik*_* Jr 5 git

我需要了解由我当前的 master 和分支 new_branch 表示的两个版本之间的文件更改。通常,如果两个分支中的路径/名称相同,我会运行以下命令。

git diff new_branch -- 路径/文件

当两个分支之间的路径/文件不同时我该怎么办?

我可以回退并创建另一个克隆的存储库并签出 new_branch。然后做unix的sdiff。我只是想知道 git diff 的作者是否预料到了这种情况并内置了一些东西来处理它。

——谢谢你——小迈克

ear*_*arl 5

Git 没有移动/重命名/复制文件的真正概念,但是它具有启发式方法来尝试检测这些情况,然后以一种很好的方式显示它们。

也就是说,您可以git-diff通过将-M标志传递给它来指示使用这些启发式方法来检测重命名。有了它你可以尝试

git diff -M new_branch -- new-path/file old-path/file
Run Code Online (Sandbox Code Playgroud)

看看它是否适用于您的特定情况。此外,git diff -M --stat new_branch将为您提供更改的概述,并向您展示 Git 的启发式方法重命名的内容。