我目前遇到 git lfs 错误,该错误阻止我将本地提交推送到远程服务器。错误消息包含可能有问题的 git lfs 对象的哈希值,但不包含其在工作树中相应的文件路径。我如何才能从 git lfs 哈希中获取这个有问题的文件的路径,以便我可以仔细查看它?
以下是完整的错误消息供参考(已编辑 URL 以符合我雇主的 NDA):
LFS: Client error: https://dev.azure.com/my_organization/my_project/_git/my_repository/info/lfs/objects/9bf017ecdcfe64013cf704f92e145f47e5f91792f8a8eee791af9b730392d590 from HTTP 413
error: failed to push some refs to 'https://dev.azure.com/my_organization/my_project/_git/my_repository'
我已经尝试过 this stackoverflow 答案中的 shell 脚本,但如果我用我的对象哈希调用它,它似乎不会打印任何结果(
./git-hash-to-filepath.sh f56f7109f17b227a830d9edc24e447a0637bebba409527c24007c68a1c400cc8
)。
您指出的问题提供了一种查找存储在 git 中(而不是 lfs 中)的 blob 的方法。 我不是100%熟悉
git lfs
的细节,我认为你的文件在git存储中被替换为包含你看到的id的文本文件(
9bf017ecd...
)如果是这种情况,您可以尝试使用 -S
的镐选项(
-G
或 git log
)来发现此 id 出现或消失的提交:git log --graph --oneline -G 9bf017ecdcfe64013cf704f92e145f47e5f91792f8a8eee791af9b730392d590
# to view which file(s) contain that string, add --name-only or --name-status
git log --name-status --graph --oneline -G 9bf017ecdcfe64013cf704f92e145f47e5f91792f8a8eee791af9b730392d590
链接到文档:
git help log
、
-S
和-G
部分