How to recover Unity.prefab files in git-lfs after merging

I am working on a Unity3D project in Unity17.2.1

I am using git with Git-LFS and SourceTree on Windows 10.

My problem now:

Everything works fine in my local clone.
But , if I clone a project in a new folder (for testing), I get a lot of errors. It loads most trackers for LFS files just fine, but for some of them I get:

Error loading object: Assets / VRITM / _Prefabs / SceneGraph / NetworkManager / DebugHUD / ConfigurationPanel / InputField.prefab (3a0c39040b397ab7120d427e019ad767b2bd6b91386856f9730507be1b59ad3c)

I can somehow restore the "copied" (recently cloned) project locally, since I exported the entire Assets folder as a single package from my working local clone.

But after that, git still claims to be β€œupdated”, so I cannot commit / click again.

How can I recover these monitored LFS files in a remote repository (github)?

Since everything works fine for me on my local clone, I think that there must be some way to β€œforce” Git-LFS to download all the files, as I have them.


The second problem (this is resolved now. See comments.)

In addition, I have two scenarios that I renamed before the merge:
On the host was

 DebugHUDManager.cs ConfigurationHUDManager.cs 

But I renamed classes and files to

 DebugHUDManager.cs ConfigurationHUDManager.cs 

therefore, in my local (working) clone, I have a later point, when I clone again, I get the old files (..HUD ..), and therefore GameObject has only missing scripts. I can solve this by renaming only the files again. But this is not trackable in git. He continues to say "updated."


These are my .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 

Additional notes

  • Problems began after some huge merger.

  • I did not have Smart-Minging of Unity with UnityYamlMerge.exe . (I added it now.)

  • All missing files are of the types .prefab and .unity . And they all seem to be part of my last commits before the merge. But other .prefab files load fine.

  • Also, the size does not matter, because most of them have 10Kb, while some .prefab files that are downloaded have, for example, 1.9Mb.

  • Asset Serialization - Mode = Strength Text

  • I just made another test commit with just the new .prefab file. This works great. The only thing that doesn't work are those .prefab files that were added / changed by merge.

How can I save this project? oo

UPDATE:
In the meantime, I created a new repository and copied the files (of course, excluding the .git folder) from my working local clone. But, of course, the story in the new repository has disappeared. But at least we can continue to work together.

+5
source share

Source: https://habr.com/ru/post/1274519/


All Articles