我正在尝试迁移较旧的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。
答案 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
...应该足够。