assets/model.bin below with a file that Git does not already track.
1
Initialize Gat
gat.lock merge driver.
Run it once in each clone.2
Choose storage
This example uses a local directory with no cloud account or credentials.
Choose the commands for your shell:Keep this storage directory: the fresh clone will read from it. For shared
storage, follow Set up a remote.
- macOS / Linux
- Windows PowerShell
A Gat remote stores file content; a Git remote stores commits. Adding a
Gat remote never selects a default, even when it is named
origin.3
Track and commit a file
gat.lock, plus the storage configuration in gat.yaml.How does Gat keep the file out of Git?
How does Gat keep the file out of Git?
Gat manages entries in
.git/info/exclude so ordinary git add commands
skip Gat-managed files. The bytes live in .gat/objects by default.
See How Gat works.4
Upload the bytes
gat push before git push so
the objects are available before their commits are published.5
Restore the file in a fresh clone
From the original repository, clone into a sibling directory:Git supplies the metadata;
gat pull downloads the bytes and restores files
for the current checkout. This local example works on the same machine.Open
assets/model.bin in the new clone and confirm its contents.
gat ls-files lists the tracked paths.Everyday commands
gat status does not inspect file contents. Record edits with gat add;
use gat sync --dry-run to preview working-tree reconciliation.git reset --hard or git restore, run gat sync yourself.
Use gat pull if required objects are missing from the cache.
Next steps
Set up shared storage
Connect cloud storage or a shared directory.
Work with your team
Publish changes and resolve merge conflicts.
Choose a working set
Pull only the paths you need or save a default selection.
Understand automatic sync
Control fetching and working-tree updates after Git operations.

