强制推送一个 git lfs 文件 ID

Force push a git lfs file ID

使用 git lfs,我如何强制推送我在本地知道但由于某种原因没有推送到服务器的文件 ID?

即,在我的构建系统上我有类似

的错误

Git LFS: (0 of 15 files, 1 skipped) 0 B / 1.10 MB, 4.30 MB skippedGit LFS: (15 of 15 files, 1 skipped) 1.10 MB / 1.10 MB, 4.30 MB skipped [f54812afe7bfdff14c154af6adb7cc4cb425763c1bdaa5fcf0bcea4fd2da7ab9] Object does not exist on the server: [404] Object does not exist on the server

所以我知道我只需要推送 ID 为 f5481... 的文件,但是执行此操作的命令是什么? git lfs push 不起作用我必须强制同步该特定文件 ID

我记得曾在某个 github 问题中发现那个魔法命令丢失了,但我已经丢失了它,而且 man 文档似乎没有帮助...

我设法以某种方式触发了一些额外的文档....语法实际上是

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

它会强制同步一个简单的 git lfs push 不会

的对象

在将存储库及其管道迁移到新的远程之后,我的构建系统出现错误。在迁移 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