- What is Git Annex ?
git-annex is not a backup system. It may be a useful component of an archival system, or a way to deliver files to a backup system. For a backup system that uses git and that git-annex supports storing data in, see bup.git-annex is not a filesystem or Dropbox clone. However, the git-annex assistant is addressing some of the same needs in its own unique ways. (There is also a FUSE filesystem built on top of git-annex, called ShareBox.)
git-annex is not unison, but if you’re finding unison’s checksumming too slow, or its strict mirroring of everything to both places too limiting, then git-annex could be a useful alternative.
git-annex is also not a folder mirroring system like syncthing (although syncthing could be supported as a special remote) or gut, but it can be used to sync files such a way, with certain limitations (for example, it doesn’t like syncing .git directories so much).
git-annex is also not a distributed file system like Bittorrent or ipfs but both are supported as special remotes with more work in making git-annex more distributed underway.
git-annex is more than just a workaround for git scalability limitations that might eventually be fixed by efforts like git-bigfiles. In particular, git-annex’s location tracking allows having many repositories with a partial set of files, that are copied around as desired.
git-annex is not some flaky script that was quickly thrown together. I wrote it in Haskell because I wanted it to be solid and to compile down to a binary. And it has a fairly extensive test suite. (Don’t be fooled by “make test” only showing a few dozen test cases; each test involves checking dozens to hundreds of assertions.)
git-annex is not git-media, although they both approach the same problem from a similar direction. I only learned of git-media after writing git-annex, but I probably would have still written git-annex instead of using it. git-media uses git smudge filters (recently supported in git-annex as well; see unlocked files) and may be a tighter fit for certain situations. It lacks git-annex’s support for widely distributed storage, using only a single backend data store. It also does not support partial checkouts of file contents, like git-annex does.
git-annex is similarly not git-fat, which also uses git smudge filters, and also lacks git-annex’s widely distributed storage and partial checkouts.
Similarly, git-annex is not git-lfs, which also uses git smudge filters, and appears to lack git-annex’s widely distributed storage and partial checkouts.
git-annex is also not boar, although it shares many of its goals and characteristics. Boar implements its own version control system, rather than simply embracing and extending git. And while boar supports distributed clones of a repository, it does not support keeping different files in different clones of the same repository, which git-annex does, and is an important feature for large-scale archiving.
git-annex is not the Mercurial largefiles extension. Although mercurial and git have some of the same problems around large files, and both try to solve them in similar ways (standin files using mostly hashes of the real content).
* To install on debian :
Debian unstable and testing are usually fairly up to date, so this should be enough:
$sudo apt install git-annex
$sudo apt -t jessie-backports install git-annex
#Debian 7.0 "wheezy":
$sudo apt-get install git-annex
#Follow the instructions to enable backports.
$sudo apt-get -t wheezy-backports install git-annex
#Debian 6.0 "squeeze"
Follow the instructions to enable backports.
$sudo apt-get -t squeeze-backports install git-annex
Repository Address :
Git Hosting Sites :
Public Git hosting sites
Here are some places that provide free Git hosting. Check on GitServer if you want to host your own repository.
List is limited to sites that provide explicit Git hosting, not including generic hosting sites that can be used to host Git repositories.
Provider Framework is open-source? Support for other SCM Open-source repositories Space (GB) Free private repositories
Assembla No SVN/Hg/P4 Yes 0.15 1 project, 3 users
Beanstalk No SVN No 0.1 1 projects, 1 user
bitbucket.org No Mercurial Yes Unlimited Unlimited projects, 5 collaborators
Codetidy No No No 0.1 5 repositories, 5 collaborators
Codebase No Mercurial/SVN Public access available 0.05 1 project (unlimited repos), 2 collaborators
CloudForge No CVS/SVN Yes 0.2 1 user only
Deveo No Mercurial/SVN No Unlimited Unlimited projects, 6 collaborators
GitEnterprise No No No 1 Unlimited projects, 10 collaborators
GitHub No SVN Yes Unlimited No
GitLab.com Yes No Yes Unlimited Unlimited projects, unlimited collaborators
Pikacode No Mercurial Yes 1 No
ProjectLocker No SVN Read-only http 0.2 1 project, 2 collaborators
repo.or.cz Yes No Yes 0.4 No
SourceForge.net Yes Hg, SVN Yes Unlimited No
Unfuddle No SVN Yes 0.2 1 project, 2 collaborators
Visual Studio Online No TFVC No Unlimited Unlimited, 5 users