Git无法签出已删除的文件,返回pathspec错误

时间:2019-08-15 14:39:49

标签: git

我正在准备请求请求,而要点之一是保留一些旧文件。发生这种情况是从当前的HEAD返回了几个提交。从提交到cherry-pick a single file的过程如下:

git checkout 1234567 -- src/Reporters/DeletedFile.h src/Reporters/DeletedFile.cpp

我从Git Bash收到以下错误消息:

error: pathspec 'src/Reporters/DeletedFile.h' did not match any file(s) known to git
error: pathspec 'src/Reporters/DeletedFile.cpp' did not match any file(s) known to git

使用show进行检查表示文件已在哈希1234567中删除,并且使用完整哈希也将导致相同的错误。是什么原因导致此错误?

2 个答案:

答案 0 :(得分:0)

哈希1234567不包含您要检出的文件,因为它刚刚被删除。在删除之前,您需要从提交中检出文件。

要先获取提交,可以按照this answer使用<hash>^1或仅使用<hash>^

答案 1 :(得分:0)

您需要运行的命令是

git checkout 1234567^ -- src/Reporters/DeletedFile.h src/Reporters/DeletedFile.cpp

这将选择1234567之前的提交,这是包含所需文件的最后一次提交。