Large files need to be stored using Git LFS (large file storage) #1

Closed
opened 2026-10-04 23:04:15 +00:00 by badquanta · 3 comments
Collaborator

So GIT is intended for tracking text / source code changes.

Assets like Images, Meshes, Audio files, and etc are binary blobs: they do not benefit from the functions GIT provides and keeping them in GIT repository directly simply bloats the repository unnecessarily and makes pushes/pulls less efficient.

But GIT does support these kinds of files via "git lfs"; lfs stands for "large file support." Basically it will keep these files "in the repository" but separate from the rest of the text files to handle them more efficiently.

I will need to make some breaking changes to the repository in order to clean up revision history:

  • Remove large binary files from revision history.
  • Add these blobs to LFS.
  • Add all current binary file types to .gitattributes including uppercase versions of the file name.
    • .afphoto
    • .bin
    • .debug
    • .dll
    • .dylib
    • .exr
    • .fbx
    • .gif
    • .glb
    • .gltf
    • .hdr
    • .jpeg
    • .jpg
    • .ogg
    • .png
    • .png
    • .psd
    • .release
    • .res
    • .so
    • .stl
    • .tif
    • .ttf
    • .wasm
    • .wav
  • capnhop will need to do a hard-reset of his local project repository to pull these changes back in.
So GIT is intended for tracking text / source code changes. Assets like Images, Meshes, Audio files, and etc are binary blobs: they do not benefit from the functions GIT provides and keeping them in GIT repository directly simply bloats the repository unnecessarily and makes pushes/pulls less efficient. But GIT does support these kinds of files via "git lfs"; lfs stands for "large file support." Basically it will keep these files "in the repository" but separate from the rest of the text files to handle them more efficiently. I will need to make some breaking changes to the repository in order to clean up revision history: * [x] Remove large binary files from revision history. * [x] Add these blobs to LFS. * [x] Add all current binary file types to `.gitattributes` including uppercase versions of the file name. - .afphoto - .bin - .debug - .dll - .dylib - .exr - .fbx - .gif - .glb - .gltf - .hdr - .jpeg - .jpg - .ogg - .png - .png - .psd - .release - .res - .so - .stl - .tif - .ttf - .wasm - .wav * [x] capnhop will need to do a hard-reset of his local project repository to pull these changes back in.
badquanta added the invalid label 2026-10-04 23:04:15 +00:00
badquanta added reference main 2026-10-04 23:43:37 +00:00
Author
Collaborator

Alright. Now I just need capnhop to update his copy of the repo... just for reference these are the steps:

In a terminal move into the directory where you keep your projects... for instance if you keep it on the desktop do:
cd Desktop

Then we need to re-clone a clean version of the repository:
git clone https://git.ufp.institute/capnhop/Brachistochrone.git Brachistochrone-clean

Then move into that new repository with another cd:
cd Brachistochrone-clean

Last you need to pull the "large files", I believe in the future this should happen automatically, but the first time is an extra step:
git lfs pull

Do not delete your previous copy of the project yet!!!!

Keep that around for a while until we make sure everything was moved over properly.

If you realize something is missing, copy it from your old copy to the "clean" copy.
Make sure to COMMIT that to the repository and push it up to the server so we can all have it. :D

Maybe wait at least a month before deleting the original just to be safe?

Alright. Now I just need capnhop to update his copy of the repo... just for reference these are the steps: In a terminal move into the directory where you keep your projects... for instance if you keep it on the desktop do: `cd Desktop` Then we need to re-clone a clean version of the repository: `git clone https://git.ufp.institute/capnhop/Brachistochrone.git Brachistochrone-clean` Then move into that new repository with another cd: `cd Brachistochrone-clean` Last you need to pull the "large files", I believe in the future this should happen automatically, but the first time is an extra step: `git lfs pull` # Do not delete your previous copy of the project yet!!!! Keep that around for a while until we make sure everything was moved over properly. If you realize something is missing, copy it from your old copy to the "clean" copy. Make sure to COMMIT that to the repository and push it up to the server so we can all have it. :D Maybe wait at least a month before deleting the original just to be safe?
badquanta added the due date 2026-10-05 2026-10-05 01:35:56 +00:00
badquanta self-assigned this 2026-10-05 01:41:27 +00:00
capnhop was assigned by badquanta 2026-10-05 01:41:27 +00:00
Owner

I did not preform the hard reset correctly, I believe I inputd steps to clone but don't show a cloned project in godot and now cant pull, getting an error show in discord messages

I did not preform the hard reset correctly, I believe I inputd steps to clone but don't show a cloned project in godot and now cant pull, getting an error show in discord messages
Owner

possibly solved pending verification

possibly solved pending verification
Sign in to join this conversation.