我正在尝试查看位于名为wip
的分支中的文件的内容,如下所示:
git show wip:local-config.php
但是,我收到以下错误:
fatal: Path 'local-config.php' exists on disk, but not in 'wip'.
我尝试纠正路径,但失败了:
git show wip:./local-config.php
我没有使用另一个分支,而是尝试从同一个分支引用先前的提交,如下所示:
git show cd14704:local-config.php
出现了这个错误:
fatal: Path 'local-config.php' exists on disk, but not in 'cd14704'.
最后,当我尝试显示当前local-config.php
时,我根本没有输出:
git show local-config.php
根据手册,这是可能的:https://www.kernel.org/pub/software/scm/git/docs/git-show.html。我做错了什么?
答案 0 :(得分:5)
听起来您正在搜索的文件在wip
内的任何提交中都不存在。 git show
只会在您提供的refspec中显示包含某些历史记录的跟踪对象(在本例中为wip
或cd14704
)。要获得预期的行为,您需要提交该文件。
答案 1 :(得分:2)
仅供参考,当我不小心使用文件的完整路径时,我遇到了同样的错误:
git show rev:/path/to/repo-root/folder/my-file
但是您需要使用来自 repo 根目录的相对路径:
git show rev:folder/my-file
答案 2 :(得分:1)
至少在Windows上,如果您未正确输入文件路径(字母大小写为-wise),则会收到此消息。
因此,如果文件名是FileName
且您说git show wip:filename
,则会看到此消息,因为文件名在基础文件系统(NTFS)比较术语中匹配(不区分大小写) ,除非已在NTFS选项中显式启用了区分大小写的功能),但不是用Git的术语启用,因为Git区分大小写。
答案 3 :(得分:0)
我经历了完全一样的事情。问题是我在文件路径中使用了反斜杠。因此,我用常规的斜杠代替了它们,并且它开始正常工作。非常令人困惑。