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

Git无法签出已删除的文件,返回pathspec错误,git,Git,我正在准备一个pull请求,其中一个要点是保留一些遗留文件。这发生在从当前头部返回的几次提交之后。遵循从提交中删除的过程: 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

我正在准备一个pull请求,其中一个要点是保留一些遗留文件。这发生在从当前
头部返回的几次提交之后。遵循从提交中删除的过程:

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中删除,使用完整哈希也会导致相同的错误。什么可能导致此错误?

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


要在之前获得提交,可以根据使用
^1
或仅使用
^

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


要在之前获得提交,可以根据使用
^1
或仅使用
^

需要运行的命令是

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

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

需要运行的命令是

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

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

我刚刚在一个小测试存储库中尝试了同样的方法,效果很好。您确定这两个文件的路径正确吗?@ArneJ:确保执行此操作时,您位于与存储库关联的工作树的顶层。或者,使用指定“存储库顶部”的pathspec语法(
:/:src/Reporters/…
:(top)src/Reporters/…
)。@ArneJ Yes,double checked,copy pasted,等等。但是,我想知道散列是否来自七个提交(其中一个是主要合并)返回git被某些东西绊倒。@torek在尝试执行
:(top)src/…
时出现语法错误要查看哪些提交更改了文件,可以尝试
git log--stat--path/to/deleted/file
。这将显示更改路径的所有提交。也许您会发现另一个commit删除了该文件,然后可以将该commit散列与建议的checkout命令一起使用。您确定这两个文件的路径正确吗?@ArneJ:确保执行此操作时,您位于与存储库关联的工作树的顶层。或者,使用指定“存储库顶部”的pathspec语法(
:/:src/Reporters/…
:(top)src/Reporters/…
)。@ArneJ Yes,double checked,copy pasted,等等。但是,我想知道散列是否来自七个提交(其中一个是主要合并)返回git被某些东西绊倒。@torek在尝试执行
:(top)src/…
时出现语法错误要查看哪些提交更改了文件,可以尝试
git log--stat--path/to/deleted/file
。这将显示更改路径的所有提交。也许您会发现另一个commit删除了该文件,然后可以将该commit散列与建议的checkout命令一起使用。