git-annex can transfer data to or from any of a repository's git remotes.
Depending on where the remote is, the data transfer is done using rsync
(over ssh or locally), or plain cp (with copy-on-write
optimisations on supported filesystems), or using curl (for repositories
on the web). Some [[special_remotes]] are also supported that are not
traditional git remotes.

If a data transfer is interrupted, git-annex retains the partial transfer
to allow it to be automatically resumed later.

It's equally easy to transfer a single file to or from a repository,
or to launch a retrieval of a massive pile of files from whatever
repositories they are scattered amongst.

git-annex automatically uses whatever remotes are currently accessible,
preferring ones that are less expensive to talk to.

[[!img repomap.png caption="A real-world repository interconnection map
(generated by git-annex map)"]]
