git-annex-put(1)

πŸ“¦ version 10.20261026, in alpine 3.24, arch rolling

πŸ’– git-annex-put β€” sending ur files to other repos, no cap πŸ’–

okay so this is the git-annex-put(1) page from the General Commands Manual, and we're gonna make it make sense bestie 🫢


✨ NAME ✨

git-annex-put β€” send content of files to other repositories πŸš€

✨ SYNOPSIS ✨

git annex put [path ...]

✨ DESCRIPTION ✨

So basically: this sends the content of ur annexed files off to remotes. By default, files get sent to all remotes β€” with one little exception, which is certain special remotes that have to be populated using git-annex export instead. iykyk πŸ’…

If you give it no parameters at all, it operates on all annexed files in the current directory. You can specify paths of files or directories to operate on if you wanna be specific about it. πŸŽ€


🌸 OPTIONS 🌸

  • --wanted, -w β€” sends files only to remotes that actually want them. like a vibe check for remotes πŸ’… see git-annex-preferred-content(1)
  • --auto β€” only sends files to remotes that want them, or when there aren't yet the desired number of copies. lowkey the chill option ✨
  • --fast β€” only sends files to remotes with the lowest annex-cost value configured. speedrun strats πŸ”₯
  • --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. iconic multi-tasking behavior πŸ‘‘

  • --all, -A β€” instead of specifying a filename or path to send, this option can be used to send all available versions of all files. the "do everything" button fr fr

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 the last run of git-annex unused. the leftovers arc 😭
  • --failed β€” operate on files that have recently failed to be transferred. second-chance era πŸ’–
  • --key=keyname β€” use this option to send a specified key. just one specific little guy πŸ”‘
  • matching options β€” the git-annex-matching-options(1) can be used to specify what to send. filter away bestie πŸ¦‹
  • --batch β€” enables batch mode, where lines containing names of files to send are read from stdin. conveyor belt energy πŸŽ€

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. (not me getting a blank line back πŸ™ˆ)

Since the usual output while sending a file is verbose and not machine-parseable, you may want to use --json in combination with --batch. pro tip from the manpage itself, periodt πŸ’…

  • --batch-keys β€” this is like --batch but the lines read from stdin are parsed as keys. same energy, different input πŸ”‘
  • -z β€” makes batch input be delimited by nulls instead of the usual newlines. null bytes on main 🧚
  • --json β€” enable JSON output. This is intended to be parsed by programs that use git-annex. Each line of output is a JSON object. machine-readable slay πŸ€–βœ¨
  • --json-progress β€” include progress objects in JSON output. so you can watch the progress in JSON πŸ“Š
  • --json-error-messages β€” messages that would normally be output to standard error are included in the JSON instead. errors but make them JSON πŸ’€
  • Also the git-annex-common-options(1) can be used. the usual suspects 🌈

πŸ¦‹ SEE ALSO πŸ¦‹


πŸ‘‘ AUTHOR πŸ‘‘

Joey Hess <id@joeyh.name> β€” actual legend, no cap πŸ’œ


okay that's the whole page bestie!! this one's git-annex-put(1) straight outta the General Commands Manual β€” same page, same title, all the same facts, just with the vibes upgraded πŸ’…βœ¨ go send some files, you got this πŸ«ΆπŸ’–

πŸ“¦ where this page comes from