# NAME

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

# SYNOPSIS

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

# DESCRIPTION

This causes a destination repository to mirror a source repository.

Each specified file in the source repository is mirrored to the destination
repository. If a file's content is present in the source repository, it is
copied to the destination repository. If a file's content is not present in
the source repository, it will be dropped from the destination repository
when the numcopies setting allows.
  
Note that mirror does not sync the git repository, but only the file
contents. Use [[git-annex-sync]](1) for that.

# OPTIONS

* `--to=remote`

  Use the local repository as the source repository, and mirror its contents
  to the remote.

* `--from=remote`

  Use the remote as the source repository, and mirror its contents to the local
  repository.

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

  Enables parallel transfers 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.

* `--all` `-A`

  Mirror all objects stored in the git annex, not only objects used by
  currently existing files. 
  
  However, this bypasses checking the .gitattributes annex.numcopies
  setting when dropping 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.

  Like --all, this bypasses checking the .gitattributes annex.numcopies
  setting when dropping files.

* `--unused`

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

* `--failed`

  Operate on files that have recently failed to be transferred.

* matching options

  The [[git-annex-matching-options]](1)
  can be used to control what to mirror.

* `--json`

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

  Note that unlike all other commands that support `--json`, this command
  outputs different types of json objects in different circumstances.

* `--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.

* Also the [[git-annex-common-options]](1) can be used.

# SEE ALSO

[[git-annex]](1)

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

# AUTHOR

Joey Hess <id@joeyh.name>

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