84 lines
2.7 KiB
Markdown
84 lines
2.7 KiB
Markdown
# NAME
|
|
|
|
git-annex sync - synchronize local repository with remotes
|
|
|
|
# SYNOPSIS
|
|
|
|
git annex sync `[remote ...]`
|
|
|
|
# DESCRIPTION
|
|
|
|
Use this command when you want to synchronize the local repository with
|
|
one or more of its remotes. You can specify the remotes (or remote
|
|
groups) to sync with by name; the default if none are specified is to
|
|
sync with all remotes.
|
|
|
|
The sync process involves first committing any local changes to files
|
|
that have previously been added to the repository,
|
|
then fetching and merging the `synced/master` and the `git-annex` branch
|
|
from the remote repositories, and finally pushing the changes back to
|
|
those branches on the remote repositories. You can use standard git
|
|
commands to do each of those steps by hand, or if you don't want to
|
|
worry about the details, you can use sync.
|
|
|
|
The content of annexed objects is not synced by default, but the --content
|
|
option (see below) can make that also be synchronized.
|
|
|
|
Merge conflicts are automatically handled by sync. When two conflicting
|
|
versions of a file have been committed, both will be added to the tree,
|
|
under different filenames. For example, file "foo" would be replaced
|
|
with "foo.somekey" and "foo.otherkey".
|
|
|
|
Note that syncing with a remote will not update the remote's working
|
|
tree with changes made to the local repository. However, those changes
|
|
are pushed to the remote, so they can be merged into its working tree
|
|
by running "git annex sync" on the remote.
|
|
|
|
# OPTIONS
|
|
|
|
* `--message=msg`
|
|
|
|
Use this option to specify a commit message.
|
|
|
|
* `--fast`
|
|
|
|
Only sync with the remotes with the lowest annex-cost value configured.
|
|
|
|
* `--content`
|
|
|
|
Normally, syncing does not transfer the contents of annexed files.
|
|
This option causes the content of files in the work tree
|
|
to also be uploaded and downloaded as necessary.
|
|
|
|
By default, this tries to get each annexed file in the work tree
|
|
that the local repository does not yet have, and then copies each
|
|
file in the work tree to every remote that it is syncing with.
|
|
This behavior can be overridden by configuring the preferred content
|
|
of a repository. See [[git-annex-preferred-content]](1).
|
|
|
|
* `--all`
|
|
|
|
This option, when combined with `--content`, makes all available versions
|
|
of all files be synced, when preferred content settings allow.
|
|
|
|
Note that preferred content settings that use `include=` or `exclude=`
|
|
will only match the version of files currently in the work tree, but not
|
|
past versions of files.
|
|
|
|
* `--unused`
|
|
|
|
This option, when combined with `--content`, makes files
|
|
found by last run of git-annex unused be synced, when preferred content
|
|
settings allow.
|
|
|
|
# SEE ALSO
|
|
|
|
[[git-annex]](1)
|
|
|
|
[[git-annex-preferred-content]](1)
|
|
|
|
# AUTHOR
|
|
|
|
Joey Hess <id@joeyh.name>
|
|
|
|
Warning: Automatically converted into a man page by mdwn2man. Edit with care.
|