我想显示由git repo的特定状态的路径给出的文件的内容。我没试成功:
git show f825334150cd4bc8f46656b2daa8fa1e92f7796d:Katana/source/Git/GitLocalBranch.h
fatal: ambiguous argument
'f825334150cd4bc8f46656b2daa8fa1e92f7796d:Katana/source/Git/GitLocalBranch.h': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
有问题的提交未修改指定的文件。如何在给定状态下显示文件的内容(由提交哈希指定),无论文件在提交中的参与情况如何?
答案 0 :(得分:31)
您的路径规范可能存在问题。
这样可以在提交b1b22df407417...
git show b1b22df407417:Makefile
或主分支中的当前版本
git show master:Makefile
或者现在的版本中的当前版本:
git show exper:Makefile
或者必需的早期版本:
git show exper^:Makefile
等等
答案 1 :(得分:5)
您正在使用的语法与git show
联机帮助页的示例中显示的匹配,但git
似乎暗示您应该指定如下:
# I _don't_ think this is your answer...
git show f825334150 -- Katana/source/Git/GitLocalBranch.h
我肯定用于git log
并且在其联机帮助页中。
我的直觉,告诉我你使用绝对路径而不是git工作树顶部的路径。您需要确保.git
目录位于Katana/source/Git/.git
,然后在.git
之前切断所有内容,如下所示:
git show f825334150:GitLocalBranch.h
如果你想在git工作区外面显示一个git blob,你需要做这样的事情:
GIT_DIR=Katana/source/Git git show f825334150:GitLocalBranch.h
这将告诉git它可以在哪里找到您的存储库的数据。
底线:仔细检查您的路径并确保它们是正确的。如果您没有从git工作区内运行命令,则可能需要设置GIT_DIR
。