Git:“系统找不到指定的路径。” git lfs迁移后

时间:2018-12-18 18:57:06

标签: git gitlab git-lfs

我正在尝试迁移较旧的git repo以使用lfs。我以前曾使用git lfs migrate import --everything --include="*.png"成功地将png图像迁移到lfs(我认为png只能存储库中的大型二进制文件)。

现在我注意到那里仍然还有一个xcf源文件。因此,我尝试使用git lfs migrate import --everything --include="*.xcf"进行迁移。

但是,当我现在尝试git push -f进行更新时,出现以下错误:

PS C:\Users\Pablo\Dev\war-systems> git push -f
open C:\Users\Pablo\Dev\war-systems\Unity - War Systems\Assets\Plugins\badpix\message-16-help.png: The system cannot find the path specified.
error: failed to push some refs to 'https://gitlab.com/TheOddler/war-systems.git'

文件message-16-help.png是旧文件,在开发的某个时刻已被删除。它不在HEAD中,但是在某些时候。

为什么现在会发生这种情况?以及我该如何解决?

如果有关系,我正在尝试推送至gitlab。

2 个答案:

答案 0 :(得分:1)

此错误消息(在Git LFS 2.7.0中将得到改善)意味着您缺少需要推送的所有LFS对象。如果您缺少LFS对象,Git LFS会尝试在当前工作目录中查找该文件以包含该文件,希望它仍然存在。在这种情况下,不是。

您应该尝试通过运行.png来查找丢失的git lfs fetch --all文件,然后再次尝试进行推送。如果这不起作用,则说明您的存储库已损坏,并且您缺少数据。您可以尝试使用指定的所有路径再次进行导入,或者可以使用GIT_TRACE=1运行推送,并在输出中找到丢失的对象,然后从另一个存储库(如果有)复制它。

答案 1 :(得分:0)

我们有些人宁愿避免使用git lfs fetch --all(可能是因为磁盘空间有限,并且我们正在使用一个历史悠久的大型存储库)。

由于有一位来自同事的Slack帖子,我很容易就此错误被告知。

文件message-16-help.png是旧文件,该文件在某些​​时候已被删除 发展点。它不在HEAD中,但在某些时候。

根据我们的经验,当所涉及的文件不是原本希望存在的文件时,Git在该位置似乎不需要的只是空文件。

> touch message-16-help.png

...应该足够。