git-annex allows managing large files with git, without storing the file contents in git. It can sync, backup, and archive your data, offline and online. Checksums and encryption keep your data safe and secure. Bring the power and distributed nature of git to bear on your large files with git-annex.
git-annex is designed for git users who love the command line. For everyone else, the git-annex assistant turns git-annex into an easy to use folder synchroniser.
To get a feel for git-annex, see the walkthrough.
key concepts - git-annex man page - how it works - special remotes - workflows - preferred content - sync new features - clusters - git-remote-annex | the details - encryption - key-value backends - bare repositories - submodules - internals - scalability - design | other stuff - testimonials - privacy - what git annex is not - related software - public git-annex repos - thanks - sitemap |
---|
use case: The Archivist Bob has many drives to archive his data, most of them kept offline, in a safe place. With git-annex, Bob has a single directory tree that includes all his files, even if their content is being stored offline. He can reorganize his files using that tree, committing new versions to git, without worry about accidentally deleting anything. When Bob needs access to some files, git-annex can tell him which drive(s) theyâre on, and easily make them available. Indeed, every drive knows what is on every other drive. more about location tracking Bob thinks long-term, and so he appreciates that git-annex uses a simple repository format. He knows his files will be accessible in the future even if the world has forgotten about git-annex and git. more about future-proofing Run in a cron job, git-annex adds new files to archival drives at night. It also helps Bob keep track of intentional and unintentional copies of files, and logs information he can use to decide when itâs time to duplicate the content of old drives. more about backup copies | use case: The Nomad Alice is always on the move, often with her trusty netbook and a small handheld terabyte USB drive, or a smaller USB keydrive. She has a server out there on the net. She stores data, encrypted in the Cloud. All these things can have different files on them, but Alice no longer has to deal with the tedious process of keeping them manually in sync, or remembering where she put a file. git-annex manages all these data sources as if they were git remotes. more about special remotes When she has 1 bar on her cell, Alice queues up interesting files on her server for later. At a coffee shop, she has git-annex download them to her USB drive. High in the sky or in a remote cabin, she catches up on podcasts, videos, and games, first letting git-annex copy them from her USB drive to the netbook (this saves battery power). more about transferring data When sheâs done, she tells git-annex which to keep and which to remove. Theyâre all removed from her netbook to save space, and Alice knows that next time she syncs up to the net, her changes will be synced back to her server. more about distributed version control |
---|
If that describes you, or if youâre some from column A and some from column B, then git-annex may be the tool youâve been looking for to expand from keeping all your small important files in git, to managing your large files with git.
Recent news version 10.20250416 Posted 29 days and 14 hours ago version 10.20250320 Posted 1 month and 26 days ago devblog day 652-664 git-remote-annex Posted 1 year ago day 651 a major release and a conference Posted 1 year and 10 months ago day 649-650 speeding up repeated imports Posted 1 year and 11 months ago day 644-648 terminal escape sequences Posted 2 years and 1 month ago day 643 adjusted view branches Posted 2 years and 2 months ago | Recent videos git-annex presentation by Joey Hess at Distribits 2024 Posted 10 months and 29 days ago git-annex presentation by Yann BĂŒchau at TĂŒbix2023 Posted 1 year and 10 months ago Recent forum posts Standalone builds in nix Posted 7 days and 4 hours ago Scalability Issues Posted 17 days and 15 hours ago whereused: âkey other branches w/o checkout Posted 18 days ago remotes/repo/HEAD â repo/master Posted 18 days and 1 hour ago path-specific configuration of autocommit Posted 1 month and 5 days ago |
---|
git-annex is Free Software, written in Haskell. You can contribute!
git-annexâs wiki is powered by Ikiwiki and hosted by Branchable.