使用 git diff 时"fatal: bad revision" Git 错误



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

命令:

git diff --name-only --relative --diff-filter AM origin -- foldername/

错误:

fatal: bad revision 'origin'

为什么突然发生这种情况?我该如何解决?

编辑

使用不同的回购和"原始/主"仅返回不同的结果

C:gitprojectssamplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM origin/master
readme.md
C:gitprojectssamplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM master origin/master
readme.md
C:gitprojectssamplefolder (master -> origin)
λ git diff --name-only --relative --diff-filter AM origin
Properties/sample.properties
readme.md

请查看git diffman页面(运行man git-diff(。

description 部分中,您可以将第四个变体识别为调用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.

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

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

您可以通过指定要与您进行比较的提交来解决此问题。一个示例是origin/master,意思是与遥控器上的master分支的尖端进行比较,称为origin。确切指定的指定是什么取决于您要专门找出的内容。

最新更新