path: root/contrib/completion
diff options
authorVille Skyttä <>2020-05-21 18:35:59 (GMT)
committerJunio C Hamano <>2020-05-21 19:55:33 (GMT)
commitfffd0cf520718fcd0315bc5e0ee7a6d4762b96b4 (patch)
tree0caf9bfb16815a15b6c30d2886abc959db05b494 /contrib/completion
parentdf70b190bdd2add42a906819f9d41dbf91cf0809 (diff)
completion: don't override given stash subcommand with -p
df70b190 (completion: make stash -p and alias for stash push -p, 2018-04-20) wanted to make sure "git stash -p <TAB>" offers the same completion as "git stash push -p <TAB>", but it did so by forcing the $subcommand to be "push" whenever then "-p" option is found on the command line. This harms any subcommand that can take the "-p" option---even when the subcommand is explicitly given, e.g. "git stash show -p", the code added by the change would overwrite the $subcommand the user gave us. Fix it by making sure that the defaulting to "push" happens only when there is no $subcommand given yet. Signed-off-by: Ville Skyttä <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'contrib/completion')
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index adb6516..75724ca 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2776,7 +2776,7 @@ _git_stash ()
local save_opts='--all --keep-index --no-keep-index --quiet --patch --include-untracked'
local subcommands='push list show apply clear drop pop create branch'
local subcommand="$(__git_find_on_cmdline "$subcommands save")"
- if [ -n "$(__git_find_on_cmdline "-p")" ]; then
+ if [ -z "$subcommand" -a -n "$(__git_find_on_cmdline "-p")" ]; then
if [ -z "$subcommand" ]; then