Provided by: git-annex_10.20240129-1build1_amd64 bug

NAME

       git-annex-pull - pull content from remotes

SYNOPSIS

       git annex pull [remote ...]

DESCRIPTION

       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).

OPTIONS

       [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.

SEE ALSO

       git-annex(1)

       git-annex-push(1)

       git-annex-sync(1)

       git-annex-preferred-content(1)

       git-annex-satisfy(1)

AUTHOR

       Joey Hess <id@joeyh.name>

                                                                                               git-annex-pull(1)