# Install git-annex with Homebrew, apk, chocolatey, apt, dnf, MacPorts, pacman, scoop, zypper

Manage files with git without checking in file contents. Version 10.20260624 via Homebrew; verified 2026-06-28.

## Install

```sh
sudo av install brew:git-annex
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install git-annex
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install git-annex
```

  Evidence: MacPorts ports tree: devel/git-annex/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add git-annex
```

  Evidence: Alpine Linux edge package indexes: git-annex from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install git-annex
```

  Evidence: Debian stable package indexes: git-annex from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install git-annex
```

  Evidence: Fedora Rawhide package metadata: git-annex from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- pacman (92%):

```sh
sudo pacman -S git-annex
```

  Evidence: Arch Linux sync databases: git-annex from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install git-annex
```

  Evidence: openSUSE Tumbleweed package metadata: git-annex from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Chocolatey (92%):

```sh
choco install git-annex
```

  Evidence: Chocolatey community package catalog: git-annex from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','gawk'

- Scoop (92%):

```sh
scoop install main/git-annex
```

  Evidence: Scoop official bucket manifest trees: bucket/git-annex.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:git-annex
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/git-annex>
- **Version:** 10.20260624
- **Source summary:** Manage files with git without checking in file contents
- **Homepage:** <https://git-annex.branchable.com/>
- **Repository:** <https://source.git-annex.branchable.com/>
- **Upstream docs:** <https://git-annex.branchable.com/>
- **License:** AGPL-3.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
- **Source archive:** <https://hackage.haskell.org/package/git-annex-10.20260624/git-annex-10.20260624.tar.gz>
- **Last updated:** 2026-06-28T22:11:54Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- git-annex (cli)
- git-annex-shell (cli)
- git-remote-annex (cli)
- git-remote-tor-annex (cli)
- git-annex (alias)
- git-annex-shell (alias)
- git-remote-annex (alias)
- git-remote-tor-annex (alias)

## Dependencies

- gmp
- libmagic

## Build dependencies

- cabal-install
- ghc
- pkgconf

## Uses from macOS

- libffi
- sqlite

## Install behavior

- Post-install hook: not defined
- Service: declared
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 10.20260624
- Package-manager updated: 2026-06-28
- Local data: ok
- Upstream repository: https://git-annex.branchable.com/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

git-annex is a distributed data-management tool that lets Git track file names, directory history, and metadata while keeping large file contents outside normal Git objects.

### Project history

The project grew around Joey Hess's idea of combining Git's distributed history with a key-value store for file contents. Its manual describes the core model: annexed files become versioned links, while content is stored under .git/annex/objects and can be fetched, copied, moved, or dropped between repositories.

The project broadened beyond a command-line annexer into a larger system with assistant workflows, preferred content, encryption, content verification, and many special remotes. A Kickstarter-backed development year funded concentrated work on the git-annex assistant, after which Joey continued development notes on the project devblog.

The release stream and project wiki show a long-lived maintenance culture: features such as git-remote-annex, clusters, new hash backends, and special-remote improvements were documented through the same site used for manual pages, installation instructions, forums, and news.

### Adoption history

git-annex became important in communities that need reproducible paths and Git metadata without putting large data into Git itself. The official install page lists packaging across Debian, Ubuntu, Fedora, Arch, Alpine, NixOS, Gentoo, Guix, Void, openSUSE, Homebrew, FreeBSD, OpenBSD, Android, Windows, conda, and PyPI.

Its ecosystem significance comes from special remotes and related tools. The project documents built-in remotes for S3, rsync, WebDAV, git-lfs, borg, bittorrent, tor, web, and rclone, and its devblog describes scientific users and DataLad-related work around storing Git repositories on annex special remotes.

### How it is used

Practitioners use git-annex to keep large assets, media, archives, datasets, backups, and offline drives under a versioned tree. A typical workflow initializes a Git repository, runs git annex init, adds large files with git annex add, commits the symlinks or pointer files to Git, and transfers content with get, drop, copy, move, sync, fsck, and special-remote commands.

The tool is also used as a policy engine for storage availability. Users can set numcopies and preferred content rules, encrypt remotes, verify checksums, keep drives offline, and later ask git-annex where content lives or move it to a desired repository.

### Why package nerds care

git-annex matters to package people because it sits at the intersection of Git, Haskell packaging, external data stores, and reproducible archival workflows. It has many executables, many optional integrations, and many platform-specific packages, so distributions treat it as a substantial data-management package rather than a tiny Git extension.

### Timeline

- 2012: Public testimonials and the assistant campaign documented wider interest in Git-backed large-file workflows.
- 2012: The assistant work was funded through a Kickstarter-backed development year.
- 2025: The devblog described Distribits, scientific users, DataLad-related work, and git-remote-annex.
- 2026: Version 10.20260624 documented new hash-backend build flags, git-remote behavior improvements, and a new put command.

### Related projects

- Related systems include Git LFS, DataLad, rclone, borg, bup, rsync, S3-compatible storage, WebDAV storage, and provider-specific special remotes listed by the git-annex project.

### Sources

- <https://git-annex.branchable.com/>
- <https://git-annex.branchable.com/design/assistant/blog/>
- <https://git-annex.branchable.com/devblog/>
- <https://git-annex.branchable.com/git-annex>
- <https://git-annex.branchable.com/install/>
- <https://git-annex.branchable.com/news/>
- <https://git-annex.branchable.com/special_remotes/>
- <https://git-annex.branchable.com/walkthrough/>


## Security Notes

formula declares a Homebrew service.

- **Geiger risk:** orange / medium
- formula declares a Homebrew service


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: .git/config, ~/.config/git-annex/autostart
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** git-annex
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - git-annex - 10.20250416-2: normalized package name match | Debian stable package indexes: git-annex from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | manage files with git, without checking their contents into git | http://git-annex.branchable.com/
- Ubuntu apt - git-annex - 10.20240129-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: git-annex from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | manage files with git, without checking their contents into git | http://git-annex.branchable.com/
- apk - git-annex - 10.20260421-r0: normalized package name match | Alpine Linux edge package indexes: git-annex from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Manage files with git, without checking their contents into git | http://git-annex.branchable.com
- apk - git-annex-bash-completion - 10.20260421-r0: normalized package name match | Alpine Linux edge package indexes: git-annex-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for git-annex | http://git-annex.branchable.com
- apk - git-annex-doc - 10.20260421-r0: normalized package name match | Alpine Linux edge package indexes: git-annex-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Manage files with git, without checking their contents into git (documentation) | http://git-annex.branchable.com
- apk - git-annex-fish-completion - 10.20260421-r0: normalized package name match | Alpine Linux edge package indexes: git-annex-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fish completions for git-annex | http://git-annex.branchable.com
- apk - git-annex-zsh-completion - 10.20260421-r0: normalized package name match | Alpine Linux edge package indexes: git-annex-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for git-annex | http://git-annex.branchable.com
- dnf - git-annex - 10.20260115-1.fc44: normalized package name match | Fedora Rawhide package metadata: git-annex from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Manage files with git, without checking their contents into git | https://hackage.haskell.org/package/git-annex
- dnf - git-annex-docs - 10.20260115-1.fc44: normalized package name match | Fedora Rawhide package metadata: git-annex-docs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Manage files with git, without checking their contents into git | https://hackage.haskell.org/package/git-annex
- pacman - git-annex - 10.20251215-63: normalized package name match | Arch Linux sync databases: git-annex from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Manage files with git, without checking their contents into git | https://git-annex.branchable.com/
- zypper - git-annex - 10.20251215-1.4: normalized package name match | openSUSE Tumbleweed package metadata: git-annex from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Manage files with git, without checking their contents into git | https://hackage.haskell.org/package/git-annex
- zypper - git-annex-bash-completion - 10.20251215-1.4: normalized package name match | openSUSE Tumbleweed package metadata: git-annex-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Bash completion for git-annex | https://hackage.haskell.org/package/git-annex
- MacPorts - git-annex: normalized package name match | MacPorts ports tree: devel/git-annex/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - git-annex: normalized package name match | Chocolatey community package catalog: git-annex from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','gawk'
- Scoop - main/git-annex: normalized package name match | Scoop official bucket manifest trees: bucket/git-annex.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [cabal-install](https://www.automicvault.com/pkg/brew/cabal-install/) - Build dependency declared by Homebrew.
- [ghc](https://www.automicvault.com/pkg/brew/ghc/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [datalad](https://www.automicvault.com/pkg/brew/datalad/) - Popular package that depends on this formula.
- [git-annex-remote-rclone](https://www.automicvault.com/pkg/brew/git-annex-remote-rclone/) - Popular package that depends on this formula.
- [alluxio](https://www.automicvault.com/pkg/brew/alluxio/) - Shares av.db curated category or tags: cli, data, storage.
- [kertish-dos](https://www.automicvault.com/pkg/brew/kertish-dos/) - Shares av.db curated category or tags: cli, data, storage.
- [libgetdata](https://www.automicvault.com/pkg/brew/libgetdata/) - Shares av.db curated category or tags: cli, data, storage.
- [seaweedfs](https://www.automicvault.com/pkg/brew/seaweedfs/) - Shares av.db curated category or tags: cli, data, storage.
- [xrootd](https://www.automicvault.com/pkg/brew/xrootd/) - Shares av.db curated category or tags: cli, data, storage.
- [automysqlbackup](https://www.automicvault.com/pkg/brew/automysqlbackup/) - Shares av.db curated category or tags: backup, cli, data.
- [barman](https://www.automicvault.com/pkg/brew/barman/) - Shares av.db curated category or tags: backup, cli, data.
- [git-lfs](https://www.automicvault.com/pkg/brew/git-lfs/) - Package names and metadata indicate a similar tool family. Shared terms: cli, control, files, git, large.
- [git-xet](https://www.automicvault.com/pkg/brew/git-xet/) - Package names and metadata indicate a similar tool family. Shared terms: cli, control, files, git, large.

## Combined YAML source

View the package source record on GitHub. [combined/git-annex.yml](https://github.com/automic-vault/db/blob/main/combined/git-annex.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
