merge: fix NULL pointer dereference when merging nothing into void
[gitweb.git] / Documentation / git-push.txt
index 1495e3416c66331a9d70e4e298e346e099490ae4..af521f89906c9e1f262412f5a3631a9566490af2 100644 (file)
@@ -37,6 +37,13 @@ the default `<refspec>` by consulting `remote.*.push` configuration,
 and if it is not found, honors `push.default` configuration to decide
 what to push (See linkgit:git-config[1] for the meaning of `push.default`).
 
+When neither the command-line nor the configuration specify what to
+push, the default behavior is used, which corresponds to the `simple`
+value for `push.default`: the current branch is pushed to the
+corresponding upstream branch, but as a safety measure, the push is
+aborted if the upstream branch does not have the same name as the
+local one.
+
 
 OPTIONS[[OPTIONS]]
 ------------------
@@ -62,7 +69,7 @@ be named.
 If `git push [<repository>]` without any `<refspec>` argument is set to
 update some ref at the destination with `<src>` with
 `remote.<repository>.push` configuration variable, `:<dst>` part can
-be omitted---such a push will update a ref that `<src>` normally updates
+be omitted--such a push will update a ref that `<src>` normally updates
 without any `<refspec>` on the command line.  Otherwise, missing
 `:<dst>` means to update the same ref as the `<src>`.
 +
@@ -257,16 +264,20 @@ origin +master` to force a push to the `master` branch). See the
        is specified. This flag forces progress status even if the
        standard error stream is not directed to a terminal.
 
---recurse-submodules=check|on-demand::
-       Make sure all submodule commits used by the revisions to be
-       pushed are available on a remote-tracking branch. If 'check' is
-       used Git will verify that all submodule commits that changed in
-       the revisions to be pushed are available on at least one remote
-       of the submodule. If any commits are missing the push will be
-       aborted and exit with non-zero status. If 'on-demand' is used
-       all submodules that changed in the revisions to be pushed will
-       be pushed. If on-demand was not able to push all necessary
-       revisions it will also be aborted and exit with non-zero status.
+--no-recurse-submodules::
+--recurse-submodules=check|on-demand|no::
+       May be used to make sure all submodule commits used by the
+       revisions to be pushed are available on a remote-tracking branch.
+       If 'check' is used Git will verify that all submodule commits that
+       changed in the revisions to be pushed are available on at least one
+       remote of the submodule. If any commits are missing the push will
+       be aborted and exit with non-zero status. If 'on-demand' is used
+       all submodules that changed in the revisions to be pushed will be
+       pushed. If on-demand was not able to push all necessary revisions
+       it will also be aborted and exit with non-zero status. A value of
+       'no' or using '--no-recurse-submodules' can be used to override the
+       push.recurseSubmodules configuration variable when no submodule
+       recursion is required.
 
 --[no-]verify::
        Toggle the pre-push hook (see linkgit:githooks[5]).  The