From: "Quentin Bernet via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Quentin Bernet <quentin.bernet@bluewin.ch>,
Quentin Bernet <quentin.bernet@bluewin.ch>
Subject: [PATCH v2] docs: fix "git stash [push]" documentation
Date: Mon, 30 Mar 2026 13:24:35 +0000 [thread overview]
Message-ID: <pull.2255.v2.git.git.1774877075694.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2255.git.git.1774529148151.gitgitgadget@gmail.com>
From: Quentin Bernet <quentin.bernet@bluewin.ch>
Both the synopsis and explanation are incorrect and contradict each
other.
The synopsis claims "push" can only be omitted when you do not give any
options and arguments.
The explanation correctly claims that non-option arguments are not
allowed, except pathspec elements preceded by double hyphens.
But it also adds "-p" to the list of exceptions, even though it is an
option argument.
Signed-off-by: Quentin Bernet <quentin.bernet@bluewin.ch>
---
Fix git stash grammar
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2255%2FSporarum%2Fpatch-1-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2255/Sporarum/patch-1-v2
Pull-Request: https://github.com/git/git/pull/2255
Range-diff vs v1:
1: e30696d3c4 ! 1: 927410a49d docs: fix git stash grammar
@@ Metadata
Author: Quentin Bernet <quentin.bernet@bluewin.ch>
## Commit message ##
- docs: fix git stash grammar
+ docs: fix "git stash [push]" documentation
- Grammar incorrectly did not include `git stash -m`
- and other valid `git stash push` flags
+ Both the synopsis and explanation are incorrect and contradict each
+ other.
+ The synopsis claims "push" can only be omitted when you do not give any
+ options and arguments.
+ The explanation correctly claims that non-option arguments are not
+ allowed, except pathspec elements preceded by double hyphens.
+ But it also adds "-p" to the list of exceptions, even though it is an
+ option argument.
Signed-off-by: Quentin Bernet <quentin.bernet@bluewin.ch>
@@ Documentation/git-stash.adoc: git stash drop [-q | --quiet] [<stash>]
git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
[-u | --include-untracked] [-a | --all] [<message>]
git stash clear
+@@ Documentation/git-stash.adoc: COMMANDS
+ the description along with the stashed state.
+ +
+ For quickly making a snapshot, you can omit "push". In this mode,
+-non-option arguments are not allowed to prevent a misspelled
+-subcommand from making an unwanted stash entry. The two exceptions to this
+-are `stash -p` which acts as alias for `stash push -p` and pathspec elements,
+-which are allowed after a double hyphen `--` for disambiguation.
++pathspec elements are only allowed after a double hyphen `--`
++to prevent a misspelled subcommand from making an unwanted stash entry.
+
+ `save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-u | --include-untracked] [-a | --all] [-q | --quiet] [<message>]`::
+
## builtin/stash.c ##
@@
Documentation/git-stash.adoc | 10 ++++------
builtin/stash.c | 4 ++--
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/Documentation/git-stash.adoc b/Documentation/git-stash.adoc
index 235d57ddd8..b05c990ecd 100644
--- a/Documentation/git-stash.adoc
+++ b/Documentation/git-stash.adoc
@@ -14,10 +14,10 @@ git stash drop [-q | --quiet] [<stash>]
git stash pop [--index] [-q | --quiet] [<stash>]
git stash apply [--index] [-q | --quiet] [<stash>]
git stash branch <branchname> [<stash>]
-git stash [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
+git stash [push] [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
[-u | --include-untracked] [-a | --all] [(-m | --message) <message>]
[--pathspec-from-file=<file> [--pathspec-file-nul]]
- [--] [<pathspec>...]]
+ [--] [<pathspec>...]
git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
[-u | --include-untracked] [-a | --all] [<message>]
git stash clear
@@ -60,10 +60,8 @@ COMMANDS
the description along with the stashed state.
+
For quickly making a snapshot, you can omit "push". In this mode,
-non-option arguments are not allowed to prevent a misspelled
-subcommand from making an unwanted stash entry. The two exceptions to this
-are `stash -p` which acts as alias for `stash push -p` and pathspec elements,
-which are allowed after a double hyphen `--` for disambiguation.
+pathspec elements are only allowed after a double hyphen `--`
+to prevent a misspelled subcommand from making an unwanted stash entry.
`save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-u | --include-untracked] [-a | --all] [-q | --quiet] [<message>]`::
diff --git a/builtin/stash.c b/builtin/stash.c
index 95c5005b0b..0d27b2fb1f 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -50,10 +50,10 @@
#define BUILTIN_STASH_STORE_USAGE \
N_("git stash store [(-m | --message) <message>] [-q | --quiet] <commit>")
#define BUILTIN_STASH_PUSH_USAGE \
- N_("git stash [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n" \
+ N_("git stash [push] [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n" \
" [-u | --include-untracked] [-a | --all] [(-m | --message) <message>]\n" \
" [--pathspec-from-file=<file> [--pathspec-file-nul]]\n" \
- " [--] [<pathspec>...]]")
+ " [--] [<pathspec>...]")
#define BUILTIN_STASH_SAVE_USAGE \
N_("git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n" \
" [-u | --include-untracked] [-a | --all] [<message>]")
base-commit: ce74208c2fa13943fffa58f168ac27a76d0eb789
--
gitgitgadget
next prev parent reply other threads:[~2026-03-30 13:24 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-26 12:45 [PATCH] docs: fix git stash grammar Quentin Bernet via GitGitGadget
2026-03-26 16:17 ` D. Ben Knoble
2026-03-27 0:04 ` Mirko Faina
2026-03-27 15:58 ` Junio C Hamano
2026-03-27 16:28 ` Quentin Bernet
2026-03-27 16:53 ` Junio C Hamano
2026-03-27 16:58 ` Quentin Bernet
2026-03-27 17:16 ` Junio C Hamano
2026-03-27 17:36 ` Quentin Bernet
2026-03-27 17:45 ` Junio C Hamano
2026-03-27 16:47 ` Ben Knoble
2026-03-27 8:25 ` Quentin Bernet
2026-03-30 13:24 ` Quentin Bernet via GitGitGadget [this message]
2026-03-30 15:18 ` [PATCH v2] docs: fix "git stash [push]" documentation Junio C Hamano
2026-03-30 17:19 ` Quentin Bernet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2255.v2.git.git.1774877075694.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=quentin.bernet@bluewin.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.