summaryrefslogtreecommitdiff
path: root/Documentation/git-push.txt
blob: ce909f584b855f6aa1b3b830c99a900c1258a7fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
git-push(1)
===========

NAME
----
git-push - Update remote refs along with associated objects.


SYNOPSIS
--------
'git-push' [--all] [--tags] [--force] <repository> <refspec>...

DESCRIPTION
-----------

Updates remote refs using local refs, while sending objects
necessary to complete the given refs.

You can make "interesting" things to happen on the repository
every time you push into it, by setting up 'hooks' there.  See
documentation for gitlink:git-receive-pack[1].


OPTIONS
-------
<repository>::
	The "remote" repository that is destination of a push
	operation.  See the section <<URLS,GIT URLS>> below.

<refspec>::
	The canonical format of a <refspec> parameter is
	`+?<src>:<dst>`; that is, an optional plus `+`, followed
	by the source ref, followed by a colon `:`, followed by
	the destination ref.
+
The <src> side can be an
arbitrary "SHA1 expression" that can be used as an
argument to `git-cat-file -t`.  E.g. `master~4` (push
four parents before the current master head).
+
The local ref that matches <src> is used
to fast forward the remote ref that matches <dst>.  If
the optional plus `+` is used, the remote ref is updated
even if it does not result in a fast forward update.
+
Some short-cut notations are also supported.
+
* `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
* A parameter <ref> without a colon is equivalent to
  <ref>`:`<ref>, hence updates <ref> in the destination from <ref>
  in the source.

\--all::
	Instead of naming each ref to push, specifies all refs
	to be pushed.

\--tags::
	All refs under `$GIT_DIR/refs/tags` are pushed, in
	addition to refspecs explicitly listed on the command
	line.

-f, \--force::
	Usually, the command refuses to update a remote ref that is
	not a descendent of the local ref used to overwrite it.
	This flag disables the check.  This can cause the
	remote repository to lose commits; use it with care.

include::urls.txt[]

Author
------
Written by Junio C Hamano <junkio@cox.net>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite