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 命令对大文件照常可用。
这是独立命令行工具,还是需要像 git-lfs 那样的特殊服务器?它是一个普通的命令行工具,不需要特殊服务器——它安装 git 钩子,让你的工作树与 gat.lock 文件保持同步,而不是使用 clean/smudge 过滤器。
怎么在我的仓库里用起来?用 Linux/macOS shell 脚本或 Windows PowerShell 命令安装(或从源码 `cargo install`),然后在 git 仓库里运行 `gat init`,用 `gat add` 添加大文件,并把一个 remote 指向你的存储桶。
使用它需要 Rust 或特殊凭据吗?预构建安装只需要安装脚本和你的存储凭据;从源码构建需要 Rust 1.91 或更新版本,这是项目跟踪的最低支持 Rust 版本。
我添加 remote 后,gat 会自动使用它吗?不会——添加 remote 不会让它成为默认,所以每次传输都要传 --remote origin,或者显式运行 `gat remote default origin`。
不用 git 的 clean/smudge 过滤器,gat 怎么同步文件?gat sync 直接把你的工作树与当前的 gat.lock 文件或分片目录对账,`gat init` 安装的 git 钩子会在 checkout、merge/pull 和 rebase/amend 之后自动运行 sync。
Gat MCP 服务器是做什么的?它把你的 AI 编程工具直接连接到 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