Setting Up Git Large File Storage for Unreal Engine Projects

Jay (Vijayasimha BR)
3 min readMar 21, 2022

--

screenshot from my PC

For the last few months, I am once again getting back into game development. A few years ago, I did built a few games on Unity. Also, I am doing some interactive projects, including games, on P5.JS.

Now, once again, wading into game development waters, and doing some Unreal and Game development tutoring.

Now, then, as always, coding is still coding. I want my code to use GitHub because I need to version control the code. Also, I use so many computers and I work collaboratively with my Unreal learning students. The problem is, game development projects can get really, really big.

That means, you will constantly hit the ‘size limits’ of the GitHub service. My guess is, anything more than 20 MB will give you a warning that you should use some kind of Large File System or LFS.

There are many ways to configure LFS, but, the easiest way is to use the facility provided by GitHub. By default, you get 1 GB of LFS. I have a Pro account, but, even then, I only get 1 GB. And, this works like data packs that we buy here in India for our mobile phones.

You pay about $5 for every 50 GB. You can find out the exact pricing at this link — https://github.com/settings/billing

Now then, with that out of the way, how do you configure.

Step One — Install Git LFS

Head over to this page and download and install Git LFS. This is an additional install, on top of the standard git install.

Confirm that you are all set, with these commands.

git lfs install

Step Two — Configure .gitattributes

Now then, there are many ways to add large files to Git LFS. For instance, you can do this. If you have other file formats, you can include them here, no problem.

$ git lfs track "*.psd"
> Adding path *.psd

However, I would not recommend that, especially for Unreal. It’s easier to create a .gitattributes file and put the following list of usual large files in Unreal.

# UE file types
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text

# Raw Content types
*.fbx filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xcf filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text

Step Three — Do the usual commit and push thing.

That is all there is to it. Do your usual git commit and push, and large files will automatically be pushed to the large file storage. It will look something like this.

Uploading LFS objects: 100% (56/56), 24 MB | 3.2 MB/s, done.
Enumerating objects: 97, done.
Counting objects: 100% (97/97), done.
Delta compression using up to 12 threads
Compressing objects: 100% (91/91), done.
Writing objects: 100% (96/96), 200.63 KiB | 8.36 MiB/s, done.
Total 96 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3), done.
To https://github.com/Jay-study-nildana/UnrealEngineForStudentsPrivate.git
5494680..5579736 main -> main

And, keep an eye on the usage, at this link — https://github.com/settings/billing

I will eventually have to buy extra data packs.

And, that’s all there is to it.

I work as a full time freelance coding tutor. Hire me at UpWork or Fiverr or Stack Overflow. My personal website is here. Find more of my art at Behance and Unsplash. Also, I have a Podcast. Also, I am on substack.

--

--

Responses (1)