getgat-dev/gat

Simple, fast, versioned large-file storage for git 🚀 https://getgat.dev

1

stars

6

commits

Rust

primary language

Sep 11, 2026

updated

README

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 committed gat.lock file or shard directory, and Git hooks (installed by gat init) run it automatically after checkout, merge/pull, and rebase/amend.

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 puts gat on your PATH. See Installation for version-pinned install-script URLs, 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

gat 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

gat init
gat remote add origin s3://my-bucket/assets
gat add models/encoder.safetensors
git add gat.lock gat.yaml
git commit -m "Track encoder weights with gat"
gat push

Docs

Open the documentation at getgat.dev.

Contributing

See CONTRIBUTING.md for dev setup and PR conventions.

Contributors

davnn

4 commits

getgat-dev/gat

Simple, fast, versioned large-file storage for git 🚀 https://getgat.dev

1

stars

6

commits

Rust

primary language

Sep 11, 2026

updated

README

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 committed gat.lock file or shard directory, and Git hooks (installed by gat init) run it automatically after checkout, merge/pull, and rebase/amend.

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 puts gat on your PATH. See Installation for version-pinned install-script URLs, 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

gat 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

gat init
gat remote add origin s3://my-bucket/assets
gat add models/encoder.safetensors
git add gat.lock gat.yaml
git commit -m "Track encoder weights with gat"
gat push

Docs

Open the documentation at getgat.dev.

Contributing

See CONTRIBUTING.md for dev setup and PR conventions.

Contributors

davnn

4 commits

Languages

Rust

98.4%

Shell

1.1%