git-annex/doc/git-annex-sync.mdwn
Joey Hess 40731ff9fd
sync: Added -g as a short option for --no-content
I anticipate that if sync is transitioned to syncing content by default,
people will want a short option. And in repositories where
annex.synccontent = true, they already would. And pull and push sync
content by default, so a short option is useful with them too.

Mnemonic: -g makes only git data be synced
Also, -a makes only annex data be synced.

Would have preferred -c, which would complement -C, but it
was already taken to set git configs.

Sponsored-by: Noam Kremen on Patreon
2023-05-17 12:34:26 -04:00

95 lines
2.6 KiB
Markdown

# NAME
git-annex sync - synchronize local repository with remotes
# SYNOPSIS
git annex sync `[remote ...]`
# DESCRIPTION
This command synchronizes the local repository with its remotes.
This command first commits any local changes to files that have
previously been added to the repository. Then it does the equivilant of
[[git-annex-pull]](1) followed by [[git-annex-push]](1).
However, unlike those commands, this command does not transfer annexed
content by default. This may change in a future version of git-annex.
# OPTIONS
* `--content`, `--no-content`, `-g`
The --content option causes the content of annexed files
to also be pulled and pushed.
The --no-content and -g options cause the content of annexed files to
not be pulled and pushed.
The `annex.synccontent` configuration can be set to true to make
`--content` be enabled by default.
* `--content-of=path` `-C path`
This option causes the content of annexed files in the given
path to also be pulled and pushed.
This option can be repeated multiple times with different paths.
* `--commit`, `--no-commit`
A commit is done by default (unless `annex.autocommit` is set to false).
Use --no-commit to avoid committing local changes.
* `--message=msg`
Use this option to specify a commit message.
* `--pull`, `--no-pull`
Use this option to disable pulling.
When `remote.<name>.annex-sync` is set to false, pulling is disabled
for that remote, and using `--pull` will not enable it.
* `--push`, `--no-push`
Use this option to disable pushing.
When `remote.<name>.annex-sync` is set to false, pushing is disabled for
that remote, and using `--push` will not enable it.
* `--cleanup`
Removes the local and remote `synced/` branches, which were created
and pushed by `git-annex sync`. This option prevents all other syncing
activities.
This can come in handy when you've synced a change to remotes and now
want to reset your master branch back before that change. So you
run `git reset` and force-push the master branch to remotes, only
to find that the next `git annex merge` or `git annex sync` brings the
changes back. Why? Because the `synced/master` branch is hanging
around and still has the change in it. Cleaning up the `synced/` branches
prevents that problem.
* Also all options supported by [[git-annex-pull]](1) and
[[git-annex-push]](1) can be used.
* Also the [[git-annex-common-options]](1) can be used.
# SEE ALSO
[[git-annex]](1)
[[git-annex-pull]](1)
[[git-annex-push]](1)
# AUTHOR
Joey Hess <id@joeyh.name>
Warning: Automatically converted into a man page by mdwn2man. Edit with care.