mingw: handle the missing POSIXPERM prereq in t9124
[gitweb.git] / Documentation / git-push.txt
index 863c30c4c2d0fd78ee81d219ed221cb248ce1994..4c775bcec48360c3a097aea9cdb765ca9a9ec100 100644 (file)
@@ -11,7 +11,8 @@ SYNOPSIS
 [verse]
 'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
           [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
-          [-u | --set-upstream] [--signed]
+          [-u | --set-upstream]
+          [--[no-]signed|--sign=(true|false|if-asked)]
           [--force-with-lease[=<refname>[:<expect>]]]
           [--no-verify] [<repository> [<refspec>...]]
 
@@ -61,7 +62,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>`.
 +
@@ -132,12 +133,16 @@ already exists on the remote side.
        with configuration variable 'push.followTags'.  For more
        information, see 'push.followTags' in linkgit:git-config[1].
 
-
---signed::
+--[no-]signed::
+--sign=(true|false|if-asked)::
        GPG-sign the push request to update refs on the receiving
        side, to allow it to be checked by the hooks and/or be
-       logged.  See linkgit:git-receive-pack[1] for the details
-       on the receiving end.
+       logged.  If `false` or `--no-signed`, no signing will be
+       attempted.  If `true` or `--signed`, the push will fail if the
+       server does not support signed pushes.  If set to `if-asked`,
+       sign if and only if the server supports signed pushes.  The push
+       will also fail if the actual call to `gpg --sign` fails.  See
+       linkgit:git-receive-pack[1] for the details on the receiving end.
 
 --[no-]atomic::
        Use an atomic transaction on the remote side if available.
@@ -252,21 +257,25 @@ 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
-       default is \--verify, giving the hook a chance to prevent the
-       push.  With \--no-verify, the hook is bypassed completely.
+       default is --verify, giving the hook a chance to prevent the
+       push.  With --no-verify, the hook is bypassed completely.
 
 
 include::urls-remotes.txt[]