git diff fatal:不明确的参数未知修订版或路径不在工作树中

Man*_*asu 9 git git-diff fatal-error

我在生产代码中运行git fetch origin,然后尝试使用origin/master与我当前的分支进行 Git diff 。我在运行命令时遇到此错误:

致命:不明确的参数未知修订版或路径不在工作树中

请在下面找到所使用的命令和实际错误。

命令尝试:

git fetch origin
git diff --name only release/test origin/master
Run Code Online (Sandbox Code Playgroud)

预期输出:

git diff should work
Run Code Online (Sandbox Code Playgroud)

实际输出:

[localhost] local: git diff --name-only release/test origin/master |   ambiguous argument 'release/test': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

我们如何使用 Git diff 命令纠正该问题?

Von*_*onC 2

您需要确保您没有:

  • Git 存储库文件夹中与分支名称匹配的路径,即文件夹release/test
  • 或者,如philant指出的,与要比较的文件的路径相匹配的分支名称,
  • 或与分支名称匹配的标签:(git tag -l列表release/test

添加--将确保两个分支名称被解释为文字,而不是选项。在本例中 ( git diff),作为路径,而不是提交或其他git diff选项。

git diff --name-only release/test origin/master --
Run Code Online (Sandbox Code Playgroud)

在您的情况下,除非您实际上有名为release/test和的路径/文件夹,否则这应该会失败origin/master

所以git diff [<options>] <commit> <commit>仍然是正确的语法。
您只需要确保没有像这两个提交之一那样命名的路径或标签。