Unreal 4项目使用Git LFS时提示未修改的.uasset文件存在变更如何解决
Unreal 4项目Git LFS下uasset虚假变更问题解决方案
问题根因
这类无修改却提示变更、丢弃无效的问题,核心诱因有两类:
- Git行尾自动转换功能(
core.autocrlf开启)将二进制格式的.uasset误识别为文本文件,自动修改了文件内的换行符,导致和仓库内的文件哈希校验不一致 - 本地Git LFS没有正确拉取完整的资源文件,仅拉取了LFS指针文件,触发文件差异校验
临时解决当前虚假变更
- 先备份本地所有需要保留的有效改动,避免误操作丢失
- 关闭当前仓库的行尾自动转换:
git config core.autocrlf false
- 重置当前工作区并重新拉取全量LFS资源:
git reset --hard HEAD git lfs pull --exclude=
- 如果仍有变更提示,清除Git缓存后再次重置:
git rm --cached -r . git reset --hard
永久避免该问题复发
- 确保项目根目录的
.gitattributes文件中明确标记Unreal资源为二进制格式,禁止行尾转换并绑定LFS规则,添加以下配置:
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text
*.uproject filter=lfs diff=lfs merge=lfs -text
*.uplugin filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
- 团队所有成员统一配置全局Git关闭行尾自动转换,避免不同成员配置不一致导致问题反复出现:
git config --global core.autocrlf false
PR冲突处理
如果PR中已经因为这类虚假变更产生冲突,直接将冲突的资源文件回退到目标分支的版本即可,不需要合并差异:
git checkout 目标分支名(如main) -- 冲突文件的完整路径
提交后即可解决冲突。
内容的提问来源于stack exchange,提问作者Gabriel Luz Carpes
相关产品推荐
相关产品推荐

