gat README

The project's README from github.com/getgat-dev/gat. As one markdown file: README.md.

gat

Simple, fast, versioned large-file storage for git.

gat is what git-lfs would be if it didn't need a special server, and what dvc would be if it did one thing. Point it at S3, Azure Blob, GCS, and other object stores (or a plain directory), gat add your large files or directories, and keep using git exactly as before — commit, push, pull, clone all just work. No clean/smudge filter magic: gat sync reconciles the working tree with the current gat.lock file or shard directory. Git hooks installed by gat init run sync after checkout, merge/pull, and rebase/amend. Each clone needs gat init; use gat pull to download content missing from its cache.

Install

Linux / macOS

curl -fsSL https://getgat.dev/install.sh | sh

Windows (PowerShell)

& ([scriptblock]::Create((irm https://getgat.dev/install.ps1)))

This downloads the latest matching release archive, verifies its checksum, and installs gat to your user-local bin directory. Add that directory to your PATH if prompted. See Installation for version-pinned installs, manual downloads, and Cargo-based source installs.

Alternatively, install from source with Cargo:

cargo install --locked --bin gat --git https://github.com/getgat-dev/gat gat

Building gat from source requires Rust 1.91 or newer (the minimum supported Rust version, or MSRV, tracked by rust-version in Cargo.toml). Bumping the MSRV is considered a breaking change.

Quick example

Run inside an existing Git repository, using a file Git does not already track. Replace the bucket and region and configure storage credentials.

gat init
gat remote add origin 's3://my-bucket/assets?region=eu-west-1'
gat add models/encoder.safetensors
git add gat.lock gat.yaml
git commit -m "Track encoder weights with gat"
gat push --remote origin

Adding a remote does not select a default. Use --remote origin for each transfer, or run gat remote default origin. See remote setup for sharing storage configuration and How Gat works for the lock, cache, and working files.

Docs

Open the documentation at getgat.dev.

Contributing

See CONTRIBUTING.md for dev setup and PR conventions.

gat (getgat-dev/gat)

devops
Searching Database…

522 ·GitHub
What is this?gat is a simple, fast, versioned large-file storage tool for git: point it at S3, Azure Blob, GCS, or a plain directory, and your normal git add/commit/push/pull/clone commands keep working as before for large files.
Is this a standalone CLI, or does it need a special server like git-lfs?It's a plain command-line tool with no required special server — it installs git hooks that keep your working tree in sync with a gat.lock file instead of using clean/smudge filters.
How do I get it running in my repo?Install it with the Linux/macOS shell script or the Windows PowerShell command (or `cargo install` from source), then run `gat init` inside your git repo, `gat add` the large files, and point a remote at your storage bucket.
Do I need Rust or special credentials to use it?Prebuilt installs just need the install script and your storage credentials; building from source requires Rust 1.91 or newer, which is the project's tracked minimum supported Rust version.
If I add a remote, does gat automatically use it?No — adding a remote doesn't make it the default, so you have to pass --remote origin on every transfer or explicitly run `gat remote default origin`.
How does gat sync files without git's clean/smudge filters?gat sync reconciles your working tree directly with the current gat.lock file or shard directory, and git hooks installed by `gat init` run sync automatically after checkout, merge/pull, and rebase/amend.
What is the Gat MCP server for?It connects your AI coding tool directly to gat's documentation so it can look up usage and command reference while you work.
How is gat different from git-lfs or dvc?Unlike git-lfs, gat doesn't require a special server — any object store or plain directory works; unlike dvc, it focuses on one job, keeping large-file storage transparent to your normal git workflow.
What are similar projects?crab, walgit, walgithub, jj, rclone, git-sim, minio, celld
Creator
getgat-dev
Size
2.5 MB
Stars
522
Age
1mo
Commits · 90 Days