git-annex-pull - pull content from remotes
git annex pull [remote ...]
This command pulls content from remotes. It downloads both git
repository content, and the content of annexed files. Like git pull,
it merges changes into the current branch.
You can use git pull and git-annex get by hand to do
the same thing as this command, but this command handles several details,
including making sure that the git-annex branch is fetched from the
remote.
Some special remotes contain a tree of files that can be imported,
and this command can be used to pull from those remotes as well as regular
git remotes. See git-annex-import(1) for details about how those special
remotes work. In order for this command to import from a special remote,
remote.<name>.annex-tracking-branch also must be configured,
and have the same value as the currently checked out branch.
When git-annex-adjust(1) has been used to check out an adjusted
branch, this command will also pull changes from the parent branch.
When git-annex-view(1) has been used to check out a view branch,
this command will update the view branch to reflect any changes to the
parent branch or metadata.
When git-annex-migrate(1) has been used in other repositories,
this updates the content in the local repository for those migrations as
well.
Normally this tries to download the content of each annexed file,
from any remote that it's pulling from that has a copy. To control which
files it downloads, configure the preferred content of the local repository.
It will also drop files from a remote that are not preferred content of the
remote. See git-annex-preferred-content(1).
- [remote]
- By default this command pulls from all available remotes, except for
remotes that have remote.<name>.annex-pull (or
remote.<name>.annex-sync) set to false.
- By specifying the names of remotes (or remote groups), you can control
which ones to pull from.
- --fast
- Only pull with the remotes with the lowest annex-cost value
configured.
- When a list of remotes (or remote groups) is provided, it picks from
amoung those, otherwise it picks from amoung all remotes.
- --only-annex -a,
--not-only-annex
- Only pull the git-annex branch and annexed content from remotes, not other
git branches.
- The annex.synconlyannex configuration can be set to true to make
this be the default behavior. To override such a setting, use
--not-only-annex.
- When this is combined with --no-content, only the git-annex branch will be
pulled.
- --no-content, -g,
--content
- Use --no-content or -g to avoid downloading (and dropping)
the content of annexed files, and also prevent doing any migrations of
content.
- If you often use --no-content, you can set the
annex.synccontent configuration to false to prevent downloading
content by default. The --content option overrides that
configuration.
- To only prevent only migrations of content, you can set the
annex.syncmigrations configuration to false. The --content
option overrides that configuration as well.
- --content-of=path
-C path
- Only download (and drop) annexed files in the given path.
- This option can be repeated multiple times with different paths.
- --all -A
- Usually this command operates on annexed files in the current branch. This
option makes it operate on all available versions of all annexed files
(when preferred content settings allow).
- Note that preferred content settings that use include= or
exclude= will only match the version of files currently in the work
tree, but not past versions of files.
- --jobs=N
-JN
- Enables parallel pulling with up to the specified number of jobs running
at once. For example: -J10
- Setting this to "cpus" will run one job per CPU core.
- (Note that git pulls are not done in parallel because that tends to be
less efficient.)
- --allow-unrelated-histories,
--no-allow-unrelated-histories
- Passed on to git merge, to control whether or not to merge
histories that do not share a common ancestor.
- --resolvemerge,
--no-resolvemerge
- By default, merge conflicts are automatically handled by this command.
When two conflicting versions of a file have been committed, both will be
added to the tree, under different filenames. For example, file
"foo" would be replaced with "foo.variant-A" and
"foo.variant-B". (See git-annex-resolvemerge(1) for
details.)
- Use --no-resolvemerge to disable this automatic merge conflict
resolution. It can also be disabled by setting annex.resolvemerge
to false.
- --backend
- Specifies which key-value backend to use when importing from a special
remote.
- Also the
git-annex-common-options(1) can be used.
git-annex(1)
git-annex-push(1)
git-annex-sync(1)
git-annex-preferred-content(1)
git-annex-satisfy(1)
Joey Hess <id@joeyh.name>