我正在尝试显示某个文件夹的原始位置之间的更改,但我希望它仅显示使用以下命令添加和修改的文件夹的名称,但它返回错误。
命令:
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)
查看(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