1git-annex-push(1)           General Commands Manual          git-annex-push(1)
2
3
4

NAME

6       git-annex-push - push content to remotes
7

SYNOPSIS

9       git annex push [remote ...]
10

DESCRIPTION

12       This  command pushes content to remotes. It uploads both git repository
13       content, and the content of annexed files.
14
15       You can use git push and git-annex copy by hand to do the same thing as
16       this  command, but this command handles several details, including mak‐
17       ing sure that the git-annex branch is pushed to the remote.
18
19       When using git-annex, often remotes are not bare repositories,  because
20       it's helpful to add remotes for nearby machines that you want to access
21       the same annexed content. Pushing to a non-bare remote  will  not  nor‐
22       mally  update  the  remote's current branch with changes from the local
23       repository. (Unless the remote is configured with  receive.denyCurrent‐
24       Branch=updateInstead.)
25
26       To  make working with such non-bare remotes easier, this command pushes
27       not only local master to remote master, but also to remote  synced/mas‐
28       ter  (and similar with other branches). When git-annex pull (or git-an‐
29       nex sync) is later run  on  the  remote,  it  will  merge  the  synced/
30       branches that were pushed to it.
31
32       Some  special remotes allow exporting a tree of files to them, and this
33       command can be used to push to those remotes as well as regular git re‐
34       motes.  See git-annex-export(1) for details about how those special re‐
35       motes work. In order for this command to export to  a  special  remote,
36       remote.<name>.annex-tracking-branch  also  must be configured, and have
37       the same value as the currently checked out branch.
38
39       When git-annex-adjust(1) has been used to check out an adjusted branch,
40       this  command  will  propagate  changes that have been made back to the
41       parent branch, without propagating the adjustments.
42
43       Normally this tries to upload the content of each annexed file that  is
44       in  the  working tree, to any remote that it's pushing to that does not
45       have a copy. To control which files are uploaded to a remote, configure
46       the  preferred  content of the remote. When a file is not the preferred
47       content of a remote, or of the local repository, this command will  try
48       to drop the file's content.  See git-annex-preferred-content(1).
49

OPTIONS

51       [remote]
52
53              By  default,  this command pushes to all remotes, except for re‐
54              motes that have remote.<name>.annex-push  (or  remote.<name>.an‐
55              nex-sync)  set  to  false or remote.<name>.annex-readonly set to
56              true.
57
58              By specifying the names of remotes (or remote groups),  you  can
59              control which ones to push to.
60
61       --fast Only  push  to the remotes with the lowest annex-cost value con‐
62              figured.
63
64              When a list of remotes (or remote groups) is provided, it  picks
65              from amoung those, otherwise it picks from amoung all remotes.
66
67       --only-annex -a, --not-only-annex
68              Only pull the git-annex branch and annexed content from remotes,
69              not other git branches.
70
71              The annex.synconlyannex configuration can be set to true to make
72              this  be  the  default behavior. To override such a setting, use
73              --not-only-annex.
74
75              When this is combined  with  --no-content,  only  the  git-annex
76              branch will be pulled.
77
78       --no-content, -g, --content
79              Use  --no-content  or  -g  to avoid uploading (and dropping) the
80              content of annexed files.
81
82              If you often use --no-content, you can set the annex.synccontent
83              configuration  to false to prevent uploading content by default.
84              The --content option overrides that configuration.
85
86       --content-of=path -C path
87              Only upload (or drop) annexed files in the given path.
88
89              This option can be repeated multiple times with different paths.
90
91       --all -A
92              Usually this command operates on annexed files  in  the  current
93              branch.   This option makes it operate on all available versions
94              of all annexed files (when preferred content settings allow).
95
96              Note that preferred content settings that use  include=  or  ex‐
97              clude=  will  only  match  the version of files currently in the
98              work tree, but not past versions of files.
99
100       --jobs=N -JN
101              Enables parallel pushing with up to the specified number of jobs
102              running at once. For example: -J10
103
104              Setting this to "cpus" will run one job per CPU core.
105
106       --cleanup
107              Removes  the  local and remote synced/ branches, which were cre‐
108              ated and pushed by git-annex push or git-annex sync. This option
109              prevents all other activities.
110
111              This  can  come  in handy when you've pushed a change to remotes
112              and now want to  reset  your  master  branch  back  before  that
113              change. So you run git reset and force-push the master branch to
114              remotes, only to find that the next git annex merge or git annex
115              pull  brings  the  changes  back. Why? Because the synced/master
116              branch is hanging around and still has the change in it.  Clean‐
117              ing up the synced/ branches prevents that problem.
118
119       Also the git-annex-common-options(1) can be used.
120

SEE ALSO

122       git-annex(1)
123
124       git-annex-pull(1)
125
126       git-annex-sync(1)
127
128       git-annex-preferred-content(1)
129

AUTHOR

131       Joey Hess <id@joeyh.name>
132
133                                                             git-annex-push(1)
Impressum