git-annex: manage files with git, without checking their contents into git

[ agpl, program, utility ] [ Propose Tags ]

git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space.

It can store large files in many places, from local hard drives, to a large number of cloud storage services, including S3, WebDAV, and rsync, with a dozen cloud storage providers usable via plugins. Files can be stored encrypted with gpg, so that the cloud storage provider cannot see your data. git-annex keeps track of where each file is stored, so it knows how many copies are available, and has many facilities to ensure your data is preserved.

git-annex can also be used to keep a folder in sync between computers, noticing when files are changed, and automatically committing them to git and transferring them to other computers. The git-annex webapp makes it easy to set up and use git-annex this way.


[Skip to Readme]
Versions [faq] 3.20110702, 3.20110702.2, 3.20110705, 3.20110707, 3.20110819, 3.20110902, 3.20110906, 3.20110915, 3.20110928, 3.20111011, 3.20111122, 3.20111203, 3.20111211, 3.20111231, 3.20120113, 3.20120115, 3.20120116, 3.20120123, 3.20120227, 3.20120229, 3.20120230, 3.20120309, 3.20120315, 3.20120405, 3.20120406, 3.20120418, 3.20120430, 3.20120511, 3.20120522, 3.20120605, 3.20120611, 3.20120614, 3.20120615, 3.20120624, 3.20120629, 3.20120721, 3.20120807, 3.20120825, 3.20120924, 3.20121001, 3.20121009, 3.20121010, 3.20121016, 3.20121017, 3.20121112, 3.20121126, 3.20121127, 3.20121127.1, 3.20121211, 3.20130102, 3.20130105, 3.20130107, 3.20130114, 3.20130124, 3.20130207, 3.20130216.1, 4.20130227, 4.20130314, 4.20130323, 4.20130405, 4.20130417, 4.20130501, 4.20130501.1, 4.20130516, 4.20130521, 4.20130521.1, 4.20130521.2, 4.20130601, 4.20130627, 4.20130709, 4.20130723, 4.20130802, 4.20130815, 4.20130827, 4.20130909, 4.20130920, 4.20130927, 4.20131002, 4.20131024, 4.20131101, 4.20131106, 5.20131118, 5.20131120, 5.20131127, 5.20131130, 5.20131213, 5.20131221, 5.20131230, 5.20140107, 5.20140108, 5.20140116, 5.20140127, 5.20140129, 5.20140210, 5.20140221, 5.20140227, 5.20140306, 5.20140320, 5.20140402, 5.20140405, 5.20140412, 5.20140421, 5.20140517, 5.20140529, 5.20140606, 5.20140613, 5.20140707, 5.20140709, 5.20140717, 5.20140817, 5.20140831, 5.20140915, 5.20140919, 5.20140926, 5.20140927, 5.20141013, 5.20141024, 5.20141125, 5.20141203, 5.20141219, 5.20141231, 5.20150113, 5.20150205, 5.20150219, 5.20150317, 5.20150327, 5.20150406, 5.20150406.1, 5.20150409, 5.20150420, 5.20150508, 5.20150508.1, 5.20150522, 5.20150528, 5.20150617, 5.20150710, 5.20150727, 5.20150731, 5.20150812, 5.20150824, 5.20150916, 5.20150930, 5.20151019, 5.20151102, 5.20151102.1, 5.20151116, 5.20151208, 5.20151218, 6.20160114, 6.20160126, 6.20160211, 6.20160229, 6.20160318, 6.20160412, 6.20160418, 6.20160419, 6.20160511, 6.20160527, 6.20160613, 6.20160619, 6.20160808, 6.20160907, 6.20160923, 6.20161012, 6.20161027, 6.20161031, 6.20161111, 6.20161118, 6.20161210, 6.20170101, 6.20170214, 6.20170301, 6.20170301.1, 6.20170321, 6.20170510, 6.20170519, 6.20170520, 6.20170818, 6.20170925, 6.20171003, 6.20171018, 6.20171026, 6.20171109, 6.20171124, 6.20171214, 6.20180112, 6.20180227, 6.20180316, 6.20180409, 6.20180427, 6.20180509, 6.20180529, 6.20180626, 6.20180719, 6.20180807, 6.20180913, 6.20180926, 6.20181011, 7.20181031, 7.20181105, 7.20181121, 7.20181205, 7.20181211, 7.20190122, 7.20190129, 7.20190219, 7.20190322, 7.20190503, 7.20190507, 7.20190615, 7.20190626, 7.20190708, 7.20190730, 7.20190819, 7.20190912, 7.20191009, 7.20191017, 7.20191024, 7.20191106, 7.20191114, 7.20191218, 7.20191230, 7.20200202.7, 7.20200204, 7.20200219, 7.20200226, 7.20200309, 8.20200226, 8.20200309, 8.20200330, 8.20200501, 8.20200522, 8.20200617, 8.20200720, 8.20200720.1, 8.20200810, 8.20200908, 8.20201007
Change log CHANGELOG
Dependencies aeson, async, attoparsec, aws (>=0.20), base (>=4.11.1.0 && <5.0), blaze-builder, bloomfilter (>=2.0.0), byteable, bytestring, case-insensitive, clientsession, concurrent-output (>=1.10), conduit, connection (>=0.2.6), containers (>=0.5.8), criterion, crypto-api, cryptonite (>=0.23), data-default, DAV (>=1.0), dbus (>=0.10.7), deepseq, directory (>=1.2), disk-free-space, dlist, edit-distance, exceptions (>=0.6), fdo-notify (>=0.3), feed (>=1.0.0), filepath, filepath-bytestring (>=1.4.2.1.1), free, git-lfs (>=1.1.0), hfsevents, hinotify (>=0.3.10), hslogger, http-client (>=0.5.3), http-client-restricted (>=0.0.2), http-client-tls, http-conduit (>=2.3.0), http-types (>=0.7), IfElse, magic, memory, microlens, monad-control, monad-logger, mountpoints, mtl (>=2), network (>=2.6.3.0), network-bsd, network-info, network-multicast, network-uri (>=2.6), old-locale, optparse-applicative (>=0.14.1), path-pieces (>=0.2.1), persistent (>=2.8.1), persistent-sqlite (>=2.8.1), persistent-template, process (>=1.6.3), QuickCheck (>=2.10.0), random, regex-tdfa, resourcet, SafeSemaphore, sandi, securemem, setenv, shakespeare (>=2.0.11), silently (>=1.2.5.1), socks, split, stm (>=2.3), stm-chans, tagsoup, tasty (>=0.7), tasty-hunit, tasty-quickcheck, tasty-rerun, template-haskell, text, time (>=1.5.0), torrent (>=10000.0.0), transformers, unix (>=2.7.2), unix-compat (>=0.5), unliftio-core, unordered-containers, utf8-string, uuid (>=1.2.6), vector, wai, wai-extra, warp (>=3.2.8), warp-tls (>=3.2.2), Win32 (>=2.6.1.0), Win32-notify, yesod (>=1.4.3), yesod-core (>=1.6.0), yesod-form (>=1.4.8), yesod-static (>=1.5.1) [details]
License AGPL-3.0-only
Copyright 2010-2020 Joey Hess
Author Joey Hess
Maintainer Joey Hess <id@joeyh.name>
Category Utility
Home page http://git-annex.branchable.com/
Source repo head: git clone git://git-annex.branchable.com/
Uploaded by JoeyHess at 2020-10-07T18:20:06Z
Distributions Arch:8.20201007, Debian:7.20181211, Fedora:8.20200617, FreeBSD:5.20150727, NixOS:8.20201007, openSUSE:8.20200810
Executables git-annex
Downloads 190465 total (3270 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs pending
Build status unknown [no reports yet]

Flags

NameDescriptionDefaultType
assistant

Enable git-annex assistant and watch command

EnabledAutomatic
webapp

Enable git-annex webapp

EnabledAutomatic
pairing

Enable pairing

EnabledAutomatic
production

Enable production build (slower build; faster binary)

EnabledAutomatic
torrentparser

Use haskell torrent library to parse torrent files

EnabledAutomatic
magicmime

Use libmagic to determine file MIME types

EnabledAutomatic
benchmark

Enable benchmarking

EnabledAutomatic
debuglocks

Debug location of MVar/STM deadlocks

DisabledAutomatic
dbus

Enable dbus support

EnabledAutomatic
networkbsd

Build with network-3.0 which split out network-bsd

EnabledAutomatic
gitlfs

Build with git-lfs library (rather than vendored copy)

EnabledAutomatic
httpclientrestricted

Build with http-client-restricted library (rather than vendored copy)

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for git-annex-8.20201007

[back to package description]
git-annex allows managing files with git, without checking the file
contents into git. While that may seem paradoxical, it is useful when
dealing with files larger than git can currently easily handle, whether due
to limitations in memory, checksumming time, or disk space.

For documentation, see doc/ or <https://git-annex.branchable.com/>