如何 git-diff 单个暂存文件与其他分支中的相同文件

How to git-diff a single, staged file with same file in other branch

如果我理解正确的话,如果我理解

git diff master devel ./my_file

我得到了分支的两个 HEAD 之间的差异。但是,如果我在 master 中进行了更改并将它们暂存,我想我可以通过

获得未暂存文件和另一个分支中的相应文件之间的差异
$ git diff --cached master devel ./my_file

但我收到以下错误:

usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]

那么获取文件中的暂存更改与另一个分支中的相应文件之间的差异的正确方法是什么?

尝试以下语法:

git diff --cached devel -- my_file.ext

这应该比较 my_file.ext,因为它在 devel 分支的 HEAD 与 master 中的当前阶段(假设你 运行 这个命令在 master分支)。

此命令中发生了很多事情,但请注意 --cached 不是指 devel,这是一个不适用阶段概念的提交。相反,--cached 指的是跟在 -- 分隔符后的文件 my_file.ext

此命令对应于 manual 中的以下模式:

git diff [--options] --cached [<commit>] [--] [<path>…​]

这里devel是提交,my_file.ext是文件路径。