Package git-annex

Manage files with git, without checking their contents into git

https://hackage.haskell.org/package/git-annex

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.

Even without file content tracking, being able to manage files with git, move
files around and delete files with versioned directory trees, and use branches
and distributed clones, are all very handy reasons to use git. And annexed
files can co-exist in the same git repository with regularly versioned files,
which is convenient for maintaining documents, Makefiles, etc that are
associated with annexed files but that benefit from full revision control.

When a file is annexed, its content is moved into a key-value store, and a
symlink is made that points to the content. These symlinks are checked into git
and versioned like regular files. You can move them around, delete them, and so
on. Pushing to another git repository will make git-annex there aware of the
annexed file, and it can be used to retrieve its content from the key-value
store.

General Commands (Section 1)
git-annex
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...
git-annex-shell
git-annex-shell is a restricted shell, similar to git-shell, which can be used as a login shell for SSH accounts. Since its syntax is identical to git-shell's...