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)

Searching Database…

487 ·GitHub
Что это?gat — простой и быстрый инструмент с версионированием для хранения больших файлов в git: укажите ему S3, Azure Blob, GCS или обычный каталог, и ваши привычные команды git add/commit/push/pull/clone продолжат работать с большими файлами как раньше.
Это отдельный CLI или ему нужен специальный сервер, как git-lfs?Это обычный консольный инструмент без обязательного специального сервера — он ставит git-хуки, которые синхронизируют рабочее дерево с файлом gat.lock, вместо использования фильтров clean/smudge.
Как запустить его в своём репозитории?Установите его shell-скриптом Linux/macOS или командой PowerShell для Windows (или `cargo install` из исходников), затем выполните `gat init` внутри вашего git-репозитория, добавьте большие файлы через `gat add` и укажите remote на своё хранилище.
Нужен ли Rust или особые учётные данные для использования?Для готовых установок нужны только установочный скрипт и учётные данные вашего хранилища; сборка из исходников требует Rust 1.91 или новее — это отслеживаемая минимальная поддерживаемая версия Rust проекта.
Если я добавлю remote, gat начнёт использовать его автоматически?Нет — добавление remote не делает его стандартным, так что придётся передавать --remote origin при каждой передаче или явно выполнить `gat remote default origin`.
Как gat синхронизирует файлы без git-фильтров clean/smudge?gat sync сверяет рабочее дерево напрямую с текущим файлом gat.lock или каталогом шардов, а git-хуки, установленные `gat init`, запускают синхронизацию автоматически после checkout, merge/pull и rebase/amend.
Для чего нужен MCP-сервер Gat?Он подключает ваш ИИ-инструмент для кодинга напрямую к документации gat, чтобы тот мог смотреть справку по использованию и по командам во время работы.
Чем gat отличается от git-lfs или dvc?В отличие от git-lfs, gat не требует специального сервера — подойдёт любое объектное хранилище или обычный каталог; в отличие от dvc, он сосредоточен на одной задаче, делая хранение больших файлов прозрачным для вашего обычного git-процесса.
What are similar projects?crab, walgit, walgithub, jj, rclone, git-sim, minio, celld
Creator
getgat-dev
Size
2.5 MB
Stars
487
Age
1mo
Commits · 90 Days