使用git diff时出现Git错误“严重:修订错误”

Can*_*nez 5 git

我正在尝试显示某个文件夹的原始位置之间的更改,但我希望它仅显示使用以下命令添加和修改的文件夹的名称,但它返回错误。

命令:

git diff --name-only --relative --diff-filter AM origin -- foldername/
Run Code Online (Sandbox Code Playgroud)

错误:

fatal: bad revision 'origin'
Run Code Online (Sandbox Code Playgroud)

为什么会突然发生?我该如何解决?

编辑

使用不同的仓库和“来源/母版”只会返回不同的结果

C:\gitprojects\samplefolder (master -> origin)
? git diff --name-only --relative --diff-filter AM origin/master
readme.md

C:\gitprojects\samplefolder (master -> origin)
? git diff --name-only --relative --diff-filter AM master origin/master
readme.md

C:\gitprojects\samplefolder (master -> origin)
? git diff --name-only --relative --diff-filter AM origin
Properties/sample.properties
readme.md
Run Code Online (Sandbox Code Playgroud)

ano*_*ode 1

查看(run )man的页面。git diffman git-diff

描述部分中,您可以将要调用的第四个变体标识git diff为您正在使用的变体。该man页面详细介绍了其用法,如下所示:

git diff [--options] <commit> [--] [<path>...]
    This form is to view the changes you have in your working tree relative to the named <commit>. You can
    use HEAD to compare it with the latest commit, or a branch name to compare with the tip of a different
    branch.
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您使用字符串origin作为<commit>要与工作树进行比较的字符串(或修订版)。这不起作用,因为origin不是修订/提交。这就是错误消息告诉您的内容。

origin是一个“远程”。远程只是对存储库的另一个远程克隆的引用,git diff克隆的引用,不能在整个存储库之间进行比较,只能在修订/提交之间进行比较。

您可以通过指定要比较的提交来解决此问题。一个例子是,意思是与遥控器上的分支origin/master尖端进行比较。具体指定什么提交取决于您想要具体查找的内容。masterorigin