Skip to main content

git-sfs

CI

SFS stands for Symbolic File Storage — like Git LFS, but instead of large file pointers it uses plain symlinks that Git already understands natively.

git-sfs keeps large files — datasets, model checkpoints, media archives — out of Git while Git tracks exactly where they belong.

Git tracks symlinks.
git-sfs stores file bytes.
rclone moves files.

No LFS server. No database. No pointer files. Git commits normal symlinks; the bytes live in a local content-addressed cache and sync to any rclone remote.

Use it when you want a repo that stays fast and cloneable, large files addressed by SHA-256 hash, a remote you can inspect with rclone ls, and CI that fails loudly when referenced files are missing.

Install

Install both git-sfs and rclone from PyPI:

uv tool install git-sfs

Or use the standalone installer:

curl -LsSf https://raw.githubusercontent.com/Red-Eyed/git-sfs/main/scripts/install.sh | sh

If raw.githubusercontent.com is blocked (corporate proxy), use the release asset URL instead:

curl -LsSf https://github.com/Red-Eyed/git-sfs/releases/latest/download/install.sh | sh

Prebuilt binaries for macOS and Linux (arm64 and x86_64). Windows is not supported — git-sfs relies on symlinks, which require elevated privileges on Windows. Installs rclone too if not already on PATH. See docs/installation.md for proxy, CA bundle, and source-build options.

Build from source:

cargo install --path crates/git-sfs --locked

Quick start

Prerequisites: rclone installed and configured with at least one remote. See docs/remotes.md for setup instructions.

git-sfs init                    # create .git-sfs/config.toml
# edit config.toml: set remote backend, path, rclone config
git-sfs setup                   # bind local cache
git-sfs add data/               # hash files, replace with symlinks
git add .git-sfs/config.toml data/
git commit -m "track datasets"
git-sfs push                    # upload to remote

On another machine:

git clone <repo> && cd <repo>
git-sfs setup
git-sfs pull                    # download from remote

Files under data/ open normally through symlinks.

Documentation

Metadata

Release files for git-sfs 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for git-sfs 2.0.0
File
git_sfs-2.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_2_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64, Linux musl 1.2+ x86-64 Details
git_sfs-2.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_2_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64, Linux musl 1.2+ ARM64 Details
git_sfs-2.0.0-py3-none-macosx_12_0_x86_64.whl Python 3 none macOS 12.0+ x86-64 Details
git_sfs-2.0.0-py3-none-macosx_12_0_arm64.whl Python 3 none macOS 12.0+ ARM64 Details

Total release size: 263.8 MB

Release files / git_sfs-2.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_2_x86_64.whl

Download URL git_sfs-2.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_2_x86_64.whl
Size 67.1 MB
Tags Linux glibc 2.17+ x86-64 Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
aeb28dedf2fac05de94a4dc7d3ab52388dbef45d495c1c03f5fff9d7cbbb4b0b
BLAKE2b-256 checksum
How to use checksums
eb32db810d08183bf0f41f7b00dff02858526ee663e1e55e60be76074c981728
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / git_sfs-2.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_2_aarch64.whl

Download URL git_sfs-2.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_2_aarch64.whl
Size 64.2 MB
Tags Linux glibc 2.17+ ARM64 Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
224c2171336d00fb167a196fda198b813b24fcb54f54ea8be40ecda849969ad2
BLAKE2b-256 checksum
How to use checksums
8abc8d114d0fbd2c67878a4fc70e785882c34b5e00f6034bb2706c856a469f35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / git_sfs-2.0.0-py3-none-macosx_12_0_x86_64.whl

Download URL git_sfs-2.0.0-py3-none-macosx_12_0_x86_64.whl
Size 67.5 MB
Tags Python 3 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
b522ae094fe94409f29825bf4c4f56414ecf116040d19d78150c3331b26d662c
BLAKE2b-256 checksum
How to use checksums
896bd9b22ff5544fb5b8ed063bceedbe57adfeeeddc444f193df4f7f7a786651
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / git_sfs-2.0.0-py3-none-macosx_12_0_arm64.whl

Download URL git_sfs-2.0.0-py3-none-macosx_12_0_arm64.whl
Size 65.1 MB
Tags Python 3 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
6761d088a587be53885dd38dbddd5c792e7fc6ab25d2f299d3b1677aa2870850
BLAKE2b-256 checksum
How to use checksums
943b42e004691b782e328aa6a9193d8bcb754d1ce3ad292df15cdf92b9c05465
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for git-sfs 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.0 This release

4 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page