如何在其他分支中对具有相同文件的单个暂存文件进行 git-diff

lor*_*ris 3 git branch git-diff

如果我理解正确,如果我这样做

git diff master devel ./my_file
Run Code Online (Sandbox Code Playgroud)

我得到了分支的两个 HEAD 之间的差异。但是,如果我对它们进行了更改master并暂存了它们,我想我可以得到未暂存文件和另一个分支中的相应文件之间的差异

$ git diff --cached master devel ./my_file
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*sen 6

尝试以下语法:

git diff --cached devel -- my_file.ext
Run Code Online (Sandbox Code Playgroud)

这应该my_file.extdevel分支的 HEAD与当前阶段进行比较master(假设您在master分支上运行此命令)。

此命令中有很多内容,但请注意,--cached它不引用devel,这是一个不适用阶段概念的提交。相反,--cached指的my_file.ext--分隔符后面的文件。

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

git diff [--options] --cached [<commit>] [--] [<path>…?]
Run Code Online (Sandbox Code Playgroud)

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