aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-push.txt
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-01-04 16:02:29 -0800
committerJunio C Hamano <gitster@pobox.com>2013-06-18 12:36:00 -0700
commitb2ed944af79041b4da151a432064c3b1c1b82fc5 (patch)
treec8b44001afc8eff3b318231169613125cea35b85 /Documentation/git-push.txt
parentac47a22a7a3c01d38b39c6896a1965ac0b9c473d (diff)
downloadgit-b2ed944af79041b4da151a432064c3b1c1b82fc5.tar.gz
push: switch default from "matching" to "simple"
We promised to change the behaviour of lazy "git push [there]" that does not say what to push on the command line from "matching" to "simple" in Git 2.0. This finally flips that bit. Helped-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-push.txt')
-rw-r--r--Documentation/git-push.txt25
1 files changed, 14 insertions, 11 deletions
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 8b637d339f..2d8498a0a2 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -36,10 +36,14 @@ OPTIONS[[OPTIONS]]
The format of a <refspec> parameter is an optional plus
`+`, followed by the source ref <src>, followed
by a colon `:`, followed by the destination ref <dst>.
- It is used to specify with what <src> object the <dst> ref
- in the remote repository is to be updated. If not specified,
+ It is used to specify what <src> object the <dst> ref
+ in the remote repository is to be updated to. If no
+ <refspec> is specified on the command line, and if no
+ <refspec> is configured for the <repository>,
the behavior of the command is controlled by the `push.default`
- configuration variable.
+ configuration variable, and if it is unset, the `simple`
+ behaviour is used (see lingit:git-config[1] and look
+ for `push.default`).
+
The <src> is often the name of the branch you would want to push, but
it can be any arbitrary "SHA-1 expression", such as `master~4` or
@@ -65,14 +69,11 @@ the remote repository.
The special refspec `:` (or `+:` to allow non-fast-forward updates)
directs git to push "matching" branches: for every branch that exists on
the local side, the remote side is updated if a branch of the same name
-already exists on the remote side. This is the default operation mode
-if no explicit refspec is found (that is neither on the command line
-nor in any Push line of the corresponding remotes file---see below) and
-no `push.default` configuration variable is set.
+already exists on the remote side.
--all::
- Instead of naming each ref to push, specifies that all
- refs under `refs/heads/` be pushed.
+ Push all branches (i.e. refs under `refs/heads/`); cannot be
+ used with other <refspec>.
--prune::
Remove remote branches that don't have a local counterpart. For example
@@ -357,8 +358,10 @@ Examples
configured for the current branch).
`git push origin`::
- Without additional configuration, works like
- `git push origin :`.
+ Without additional configuration, pushes the current branch to
+ the configured upstream (`remote.origin.merge` configuration
+ variable) if it has the same name as the current branch, and
+ errors out without pushing otherwise.
+
The default behavior of this command when no <refspec> is given can be
configured by setting the `push` option of the remote, or the `push.default`