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

时间:2013-09-12 03:56:23

标签: git

问题

我正在尝试查看位于名为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。我做错了什么?

4 个答案:

答案 0 :(得分:5)

听起来您正在搜索的文件在wip内的任何提交中都不存在。 git show只会在您提供的refspec中显示包含某些历史记录的跟踪对象(在本例中为wipcd14704)。要获得预期的行为,您需要提交该文件。

答案 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)

我经历了完全一样的事情。问题是我在文件路径中使用了反斜杠。因此,我用常规的斜杠代替了它们,并且它开始正常工作。非常令人困惑。