git - 涂抹错误 : Smudge Filter LFS Failed during Git Pull

标签 git atlassian-sourcetree unreal-engine4 pull git-lfs

我是游戏开发团队的一员。我们正在开发 Unreal Engine 4个人电脑游戏。我们有私有(private)GitLab服务器处理项目的版本控制。

现在,当任何人尝试从我们 Git 项目的特定分支进行 Git Pull 时,他们会收到一个涂抹错误:

Downloading UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_A.uasset (1.3 MB)
Error downloading object: UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_A.uasset (c366451): Smudge error: Error downloading Ue4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_A.uasset (c366451e360519497bf1719bacdc40c938c833adf9b8060d90d0829fec15d6c8): expected OID c366451e360519497bf1719bacdc40c938c833adf9b8060d90d0829fec15d6c8, got e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 after 0 bytes written

error: external filter 'git-lfs filter-process' failed
fatal: UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_A.uasset: smudge filter lfs failed

我们让创建此分支的开发人员删除 Bucket_A.uasset 并重新推送更改。当任何人现在尝试 Git Pull 时,他们会收到一个带有不同文件的 Smudge Error:

Downloading UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_C.uasset (1.4 MB)
Error downloading object: UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_C.uasset (4023793): Smudge error: Error downloading UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_C.uasset (40237933795d4ca4b4c58e2884e219c3e4cd8168af176f01b33d71e3353376d7): expected OID 40237933795d4ca4b4c58e2884e219c3e4cd8168af176f01b33d71e3353376d7, got e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 after 0 bytes written

error: external filter 'git-lfs filter-process' failed
fatal: UE4Proj/Content/Game/Art/Architecture/MedievalVillage/Textures/Bucket_C.uasset: smudge filter lfs failed

所以这不是一些孤立的事件:看起来多个文件可能存在涂抹错误。真正令人恼火的部分是涂抹错误出现在大约 99% 的 Git Pull 中,因此检查并删除带有涂抹错误的文件(无论它是什么) 在尝试 Git Pull 然后重新推送更改后手动进行,这被证明是一项繁重的工作,并且肯定会导致 Unreal Engine 项目本身出现问题(因为纹理现在将丢失)。

虚幻引擎报告这些 UASSET 文件中的任何一个都没有问题,这告诉我这些文件的内容没有任何问题。

要 Git Pull 项目,我们有 Team Member 使用 SourceTree和 Windows 命令行。他们都收到同样的错误。

什么是 Smudge Error,是否有任何处理这些问题的建议,以便我们可以成功 pull 此 Git 分支?这是一个需要由各个 Puller、Pusher 和/或 Git 服务器主机解决的问题吗?

最佳答案

所以我解决了这个问题:我们最终将 GitLab VM 回滚到导致 GitLab VM 锁定的 Git Push 之前时间(在 Git Branch 之前尝试了几次当时被推)。回滚 GitLab VM 后,我向 VM 添加了更多 RAM 和 CPU:Git 分支再次被推送,这次 GitLab VM 没有锁定。推送成功后,就可以无误地 pull 分支了!因此,在 pull 分支(或 Git 项目中与此相关的任何其他分支,我将进一步解释)时,我们不再收到 Smudge Error

我们认为,自从 Git 推送期间 GitLab 虚拟机锁定事件以来,项目 Git 存储库已损坏。事实上,从我们的任何项目分支(出于某种原因减去ma​​ster) pull 出的任何人都收到了Smudge Error ,包括以前可以毫无错误地 pull 的分支!我非常感谢在我们的 Git 服务器上执行定期快照和备份。

警告任何托管 Git 服务器的人:如果要尝试进行大推送,请先快照并备份 Git 服务器。相信我,您真的不想要损坏的 Git 存储库!

关于git - 涂抹错误 : Smudge Filter LFS Failed during Git Pull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65182585/

相关文章:

git - 尝试从 GIT pull 时发生 SSL 错误

git - 如何将终端的 Git Bash 选项更改为 xterm-256color

git - 不要忽略 git sourcetree 中的文件

git - 在哪里可以找到有关添加的子树的信息?

git - Sourcetree:查看一个分支是否被 merge

png - alpha channel 和透明 channel 有什么区别?

ruby-on-rails - 有没有办法告诉 Capistrano 将本地存储库部署到远程服务器?

javascript - travis-ci 构建和部署 npm 模块时如何包含 "build"目录

c++ - 在 GameStart 上更改 GameMode

c++ - 有没有办法动态更改比较运算符?