Git LFS is supported out of the box on every Code Storage repository. The LFS server lives at the same hostname as your Git remote, uses the same JWT for authentication, and stores objects in managed S3. There is nothing to enable or configure.Documentation Index
Fetch the complete documentation index at: https://code.storage/docs/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Install thegit-lfs client locally and run the one-time hook installation:
Quick start
Clone the repository, declare which paths LFS should track, and push.How it works
Every repository exposes a Git LFS Batch API at the same host as the Git remote. The client discovers it automatically, so you do not configure it. The endpoint it posts to is:git push, the LFS client:
- Reads
.gitattributesto determine which paths are tracked - Replaces tracked file contents in the commit with pointer files (size + SHA-256 OID)
- Posts to the LFS Batch endpoint to negotiate object upload URLs
- Uploads the actual object bytes
- Pushes the Git refs as usual
git push authenticates the LFS upload. There is no separate token or credential. Required scopes match Git operations: git:read for git lfs pull/fetch, git:write for git lfs push.
Verifying tracked files
After committing, confirm what LFS is actually managing:git lfs ls-files does not show a file you expected, it was committed as a regular blob. Check that .gitattributes was committed first and that the path glob matches.
Migrating existing large files
If you already committed large files as regular blobs, rewrite history to move them to LFS:Forking and LFS objects
Server-side forks copy Git history but not LFS objects. The fork inherits pointer files. The bytes stay under the source repo.git lfs pull on the fork will fail.
To carry LFS objects across, round-trip locally:
Caveats
- Pointer files in diffs: Tools that don’t understand LFS will show the pointer file (
version,oid,sizelines) instead of the real content. Installgit-lfseverywhere the repo is checked out. - Object lifecycle: LFS objects are scoped to the repository. Deleting the repository deletes its LFS objects.
- File locking API not supported:
git lfs lock,git lfs unlock, andgit lfs lockswill fail. There is no server-side lock registry. - Maximum single file size is 5 GiB: Enforced by the
git-lfsclient itself, which uploads each object in a single PUT.