1git-annex-push(1) General Commands Manual git-annex-push(1)
2
3
4
6 git-annex-push - push content to remotes
7
9 git annex push [remote ...]
10
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
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
122 git-annex(1)
123
124 git-annex-pull(1)
125
126 git-annex-sync(1)
127
128 git-annex-preferred-content(1)
129
131 Joey Hess <id@joeyh.name>
132
133 git-annex-push(1)