---
name: "git-annex-put"
section: "1"
platform: "linux"
package: "git-annex"
version: "10.20261026-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/git-annex-put"
---

# git-annex-put(1)

send content of files to other repositories

## NAME

git-annex-put - send content of files to other repositories

## SYNOPSIS

git annex put **\[path ...\]**

## DESCRIPTION

Sends the content of annexed files to remotes. By default, files are sent to all remotes (except for certian special remotes that have to be populated using **git-annex export**).

With no parameters, operates on all annexed files in the current directory. Paths of files or directories to operate on can be specified.

## OPTIONS

- **--wanted** **-w**

  -

  Send files only to remotes that want them. See [git-annex-preferred-content(1)](/git-annex-preferred-content/1.md)

-

  - **--auto**

  Only send files to remotes that want them, or when there are not yet the desired number of copies.

-

  - **--fast**

  Only send files to remotes with the lowest annex-cost value configured.

-

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

  Rather than specifying a filename or path to send, this option can be used to send 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 send a specified key.

-

  - matching options

  The [git-annex-matching-options(1)](/git-annex-matching-options/1.md) can be used to specify what to send.

-

  - **--batch**

  Enables batch mode, in which lines containing names of files to send 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 sent, 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 sending a file is verbose and not machine-parseable, you may want to use --json in combination with --batch.

-

  - **--batch-keys**

  This is like **--batch** but the lines read from stdin are parsed as keys.

-

  - **-z**

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

-

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

  ## SEE ALSO

[git-annex(1)](/git-annex/1.md)

[git-annex-get(1)](/git-annex-get/1.md)

[git-annex-copy(1)](/git-annex-copy/1.md)

## AUTHOR

Joey Hess \<id@joeyh.name\>
