Setting Up Git Large File Storage for Unreal Engine Projects
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.
Installing Git Large File Storage - GitHub Docs
In order to use Git LFS, you'll need to download and install a new program that's separate from Git.
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.
5494680..5579736 main -> main
And, keep an eye on the usage, at this link — https://github.com/settings/billing
And, that’s all there is to it.