我在Windows 10上使用带有Git-LFS和SourceTree的git。
现在我的问题是:
在本地克隆时一切都很好。但是,如果我将该项目克隆到一个新文件夹(用于测试),我会遇到许多错误。它可以下载大部分由LFS跟踪的文件,但对于其中的一些文件,我会收到“Error downloading object”消息。
我可以通过从工作的本地克隆中导出整个Assets文件夹作为unitypackage来在本地恢复副本,但即使这样,git也仍然声称它“up-to-date”,因此无法再次提交/推送。
我如何修复远程存储库(github)上的这些LFS跟踪文件?
因为在我的本地克隆上一切正常,所以我想必须有某种方法来“强制” git-lfs 上传所有文件,就像我拥有它们一样。
此外,我还有两个脚本,我在合并之前将它们重命名了。 在主分支上,它是:
DebugHUDManager.cs
ConfigurationHUDManager.cs
但是我已经将类和文件重命名为
DebugHudManager.cs
ConfigurationHudManager.cs
在我的本地(工作)克隆中,我拥有较新的文件,而当我新克隆时,我得到了较旧的文件(..HUD..),因此GameObject只附加了缺失脚本。我可以通过重新命名文件来解决这个问题。但这也没有被Git跟踪。它一直说“已经是最新的”。
这是我的.gitattributes文件:
# Unity
*.cginc text
*.cs diff=csharp text
*.shader text
# Unity YAML
*.anim merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf
*.mat merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
# Unity LFS
*.cubemap filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
# Image
*.ai filter=lfs diff=lfs merge=lfs -text
*.apng filter=lfs diff=lfs merge=lfs -text
*.astc filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
*.dds filter=lfs diff=lfs merge=lfs -text
*.eps filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.ktx filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.pvr filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.svgz filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
*.webm filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
# Audio
*.aif filter=lfs diff=lfs merge=lfs -text
*.m4a filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
# Video
*.asf filter=lfs diff=lfs merge=lfs -text
*.avi filter=lfs diff=lfs merge=lfs -text
*.flv filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mpeg filter=lfs diff=lfs merge=lfs -text
*.mpg filter=lfs diff=lfs merge=lfs -text
*.ogv filter=lfs diff=lfs merge=lfs -text
*.wmv filter=lfs diff=lfs merge=lfs -text
# 3D Object
*.blend filter=lfs diff=lfs merge=lfs -text
*.dxf filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
*.ma filter=lfs diff=lfs merge=lfs -text
*.max filter=lfs diff=lfs merge=lfs -text
*.mb filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
# Compressed Archive
*.7z filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
# Compiled Dynamic Library
*.dll filter=lfs diff=lfs merge=lfs -text
*.pdb filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text
# Compiled Static Library
*.a filter=lfs diff=lfs merge=lfs -text
*.la filter=lfs diff=lfs merge=lfs -text
*.lai filter=lfs diff=lfs merge=lfs -text
*.lib filter=lfs diff=lfs merge=lfs -text
*.llblgenproj filter=lfs diff=lfs merge=lfs -text
# Font
*.otf filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
# Executable/Installer
*.apk filter=lfs diff=lfs merge=lfs -text
*.exe filter=lfs diff=lfs merge=lfs -text
# Documents
*.pdf filter=lfs diff=lfs merge=lfs -text
# Other
*.reason filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
进一步说明
问题出现在一次大规模合并之后。
我没有激活使用
UnityYamlMerge.exe
进行 Unity 智能合并。(我现在添加了这个功能。)所有缺失的文件都是类型为
.prefab
和.unity
的文件。它们似乎都是在合并前我最新提交的一些文件。但其他的.prefab
文件可以正常下载。此外,大小似乎并不重要,因为大多数文件只有 10Kb 左右,而一些成功下载的
.prefab
文件的大小为 1.9Mb。资源序列化模式 = 强制文本
我刚刚又进行了一个测试提交,只包含一个新的
.prefab
文件。那个可以正常工作。唯一不能正常工作的是那些由合并添加/更改的特定的.prefab
文件。
我该如何拯救这个项目?o.O
更新:
与此同时,我创建了一个新的存储库,并将文件(当然不包括 .git 文件夹)从我的工作本地克隆中复制了过来。但新存储库中的历史记录已经丢失了。但至少我们可以继续一起工作。
git config --list
命令并检查core.ignorecase
是否存在。参见 https://dev59.com/aWMm5IYBdhLWcg3wVt4s。 - Kay