Skip to content

Commit f4bdb25

Browse files
committed
Merge branch 'jc/maint-push-refspec-default-doc' into maint
* jc/maint-push-refspec-default-doc: Documentation/git-push: clarify the description of defaults
2 parents 273ca55 + cfe1348 commit f4bdb25

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

Documentation/git-push.txt

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,17 @@ You can make interesting things happen to a repository
2323
every time you push into it, by setting up 'hooks' there. See
2424
documentation for linkgit:git-receive-pack[1].
2525

26+
When the command line does not specify where to push with the
27+
`<repository>` argument, `branch.*.remote` configuration for the
28+
current branch is consulted to determine where to push. If the
29+
configuration is missing, it defaults to 'origin'.
30+
31+
When the command line does not specify what to push with `<refspec>...`
32+
arguments or `--all`, `--mirror`, `--tags` options, the command finds
33+
the default `<refspec>` by consulting `remote.*.push` configuration,
34+
and if it is not found, honors `push.default` configuration to decide
35+
what to push (See gitlink:git-config[1] for the meaning of `push.default`).
36+
2637

2738
OPTIONS[[OPTIONS]]
2839
------------------
@@ -33,13 +44,10 @@ OPTIONS[[OPTIONS]]
3344
of a remote (see the section <<REMOTES,REMOTES>> below).
3445

3546
<refspec>...::
47+
Specify what destination ref to update with what source object.
3648
The format of a <refspec> parameter is an optional plus
37-
`+`, followed by the source ref <src>, followed
49+
`+`, followed by the source object <src>, followed
3850
by a colon `:`, followed by the destination ref <dst>.
39-
It is used to specify with what <src> object the <dst> ref
40-
in the remote repository is to be updated. If not specified,
41-
the behavior of the command is controlled by the `push.default`
42-
configuration variable.
4351
+
4452
The <src> is often the name of the branch you would want to push, but
4553
it can be any arbitrary "SHA-1 expression", such as `master~4` or
@@ -66,10 +74,7 @@ the remote repository.
6674
The special refspec `:` (or `+:` to allow non-fast-forward updates)
6775
directs Git to push "matching" branches: for every branch that exists on
6876
the local side, the remote side is updated if a branch of the same name
69-
already exists on the remote side. This is the default operation mode
70-
if no explicit refspec is found (that is neither on the command line
71-
nor in any Push line of the corresponding remotes file---see below) and
72-
no `push.default` configuration variable is set.
77+
already exists on the remote side.
7378

7479
--all::
7580
Instead of naming each ref to push, specifies that all

0 commit comments

Comments
 (0)