# NAME

git-annex copy - copy content of files to/from another repository

# SYNOPSIS

git annex copy `[path ...] [--from=remote|--to=remote]`

# DESCRIPTION

Copies the content of files from or to another remote.

# OPTIONS

* `--from=remote`

  Copy the content of files from the specified
  remote to the local repository.
  
  Any files that are not available on the remote will be silently skipped.

* `--to=remote`

  Copy the content of files from the local repository
  to the specified remote.

* `--to=here`

  Copy the content of files from all reachable remotes to the local
  repository.

* `--jobs=N` `-JN`

  Enables parallel transfers with up to the specified number of jobs
  running at once. For example: `-J10`

* `--auto`

  Rather than copying all files, only copy files that don't yet have
  the desired number of copies, or that are preferred content of the
  destination repository. See [[git-annex-preferred-content]](1)

* `--fast`

  When copying content to a remote, avoid a round trip to check if the remote
  already has content. This can be faster, but might skip copying content
  to the remote in some cases.

* `--all` `-A`

  Rather than specifying a filename or path to copy, this option can be
  used to copy all available versions of all files.

  This is the default behavior when running git-annex in a bare repository.

* `--branch=ref`

  Operate on files in the specified branch or treeish.

* `--unused`

  Operate on files found by last run of git-annex unused.

* `--failed`

  Operate on files that have recently failed to be transferred.

* `--key=keyname`

  Use this option to move a specified key.

* file matching options

  The [[git-annex-matching-options]](1)
  can be used to specify files to copy.

* `--batch`

  Enables batch mode, in which lines containing names of files to copy
  are read from stdin.

  As each specified file is processed, the usual progress output is
  displayed. If a file's content does not need to be copied, or it does not
  match specified matching options, or it is not an annexed file,
  a blank line is output in response instead.

  Since the usual output while copying a file is verbose and not
  machine-parseable, you may want to use --json in combination with
  --batch.

* `-z`

  Makes the `--batch` input be delimited by nulls instead of the usual
  newlines.

* `--json`

  Enable JSON output. This is intended to be parsed by programs that use
  git-annex. Each line of output is a JSON object.

* `--json-progress`

  Include progress objects in JSON output.

* `--json-error-messages`

  Messages that would normally be output to standard error are included in
  the json instead.

# SEE ALSO

[[git-annex]](1)

[[git-annex-get]](1)

[[git-annex-move]](1)

[[git-annex-drop]](1)

# AUTHOR

Joey Hess <id@joeyh.name>

Warning: Automatically converted into a man page by mdwn2man. Edit with care.
