强制推送 Git LFS 文件 ID

16
使用git lfs,我如何强制推送一个文件ID,我知道它在本地但由于某些原因没有被推送到服务器上?也就是说,在我的构建系统中,我遇到了如下错误:

“Git LFS:(15个文件中的0个,跳过1个)0 B / 1.10 MB,跳过4.30 MB Git LFS:(15个文件中的15个,跳过1个)1.10 MB / 1.10 MB,跳过4.30 MB [f54812afe7bfdff14c154af6adb7cc4cb425763c1bdaa5fcf0bcea4fd2da7ab9]对象不存在于服务器上:[404]对象不存在于服务器上”

所以我知道我只需要推送这个文件,其ID为“f5481...”,但应该使用什么命令? git lfs push不起作用,我必须强制同步该特定文件ID。我记得曾经在一些Github问题中找到过这个神奇的命令,但是我已经忘记了,手册文档似乎也没有帮助......
2个回答

18

我设法触发了一些额外的文档...实际的语法是:

git lfs push origin --object-id [ID]

它将强制同步一个简单的 git lfs push 无法同步的对象


注意:在 rebase 后经常会出现 git lfs 文件同步失败的情况。 - Cyril Duchon-Doris

9
在将一个代码库和其管道迁移到新的远程位置后,我的构建系统出现了错误。在迁移LFS数据之前(我忘记了这个),我已经删除了旧的远程位置上的代码库。当管道运行时,我看到了如下错误:
fetch: Fetching reference f0e482d67ea35e173e15a22c0bacb37f2c059365
[b898bde8bb8ee3ee58390ec930e8608568920f61cc9954f198bdacdf79e0d7a8] LFS object not found: [404] LFS object not found
[112e9f3c1dba98d5cafcaadbf2a34dda733a4175632c0d4ba3dbfc590d95ffd4] LFS object not found: [404] LFS object not found
[dd8066b545c4fb09057ace1cf6c6fb8df41b89647c33b5f071d38255da7539ed] LFS object not found: [404] LFS object not found
error: failed to fetch some objects from '<redacted>.git/info/lfs'
##[warning]Git lfs fetch failed with exit code 2, back off 5.225 seconds before retry.

幸运的是,我本地有LFS数据,并能通过以下方式解决:

git remote rm origin
git remote add origin <new_remote_url>
git lfs push origin --all

我曾经遇到过同样的问题,这篇文章真的很有帮助。我认为这是因为我在Azure DevOps中更改了项目名称,然后尝试进行新的克隆时发生的。我的猜测(我没有进行任何测试)是lfs文件没有随着其他仓库内容一起移动到新路径。这可能是其他人在同样情况下需要注意的问题之一。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接