`git show`不工作:"致命:路径[mypath]存在于磁盘上,但不在[mybranch]中"

JP *_*Lew 7 git

问题

我正在尝试查看位于名为的分支中的文件的内容 wip like:

git show wip:local-config.php
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

fatal: Path 'local-config.php' exists on disk, but not in 'wip'.
Run Code Online (Sandbox Code Playgroud)

我尝试了什么

我尝试纠正路径,但失败了:

git show wip:./local-config.php
Run Code Online (Sandbox Code Playgroud)

我尝试从同一个分支引用先前的提交,而不是使用另一个分支,如下所示:

git show cd14704:local-config.php
Run Code Online (Sandbox Code Playgroud)

这给了这个错误:

fatal: Path 'local-config.php' exists on disk, but not in 'cd14704'.
Run Code Online (Sandbox Code Playgroud)

最后,当我试图显示当前时,local-config.php我根本没有输出:

git show local-config.php
Run Code Online (Sandbox Code Playgroud)

文档

根据手册,这是可能的:https://www.kernel.org/pub/software/scm/git/docs/git-show.html.我究竟做错了什么?

the*_*e_V 10

我也经历过同样的事情。问题是我在文件路径中使用了反斜杠。所以我用普通的斜杠替换了它们,它开始工作得很好。很混乱。


Jef*_*ard 6

仅供参考,当我不小心使用文件的完整路径时,我遇到了同样的错误:

git show rev:/path/to/repo-root/folder/my-file
Run Code Online (Sandbox Code Playgroud)

但是您需要使用存储库根目录的相对路径:

git show rev:folder/my-file
Run Code Online (Sandbox Code Playgroud)


Chr*_*yes 5

听起来你正在搜索的文件在其中的任何提交中都不存在wip.git show将仅显示您提供的refspec中具有某些历史记录的跟踪对象(在本例中为wip,或cd14704).要获得预期的行为,您需要提交该文件.