Subject: Re: [PATCH v3] stash: infer "push" when push-specific options are given

From: Mirko Faina <[email-masked]>
Date: Mon, 6 Apr 2026 20:15:11 +0200

On Sun, Apr 05, 2026 at 11:09:53AM +0000, Deveshi Dwivedi wrote:
> When "git stash" is run without the "push" subcommand, the command
> tries to assume "push" but rejects any non-option arguments (i.e.,
> pathspecs without "--") to avoid treating a misspelled subcommand
> name as a pathspec.  The only exception is "-p", which sets
> force_assume and allows pathspecs to follow.
> 
> This means "git stash -m foo file" is rejected even though "-m" is
> unambiguously a "push" option, and the user's intent is clear.  The
> same applies to other push-specific options like "--staged",
> "--keep-index", "--include-untracked", and "--pathspec-from-file".
> 
> Expand the set of options that force the "push" assumption to
> include all push-specific options, so that pathspec arguments are
> accepted without requiring "--" or the explicit "push" subcommand
> when the command line already contains a push-only option.
> 
> This was marked as #leftoverbits in [1].
> 
> [1] https://lore.kernel.org/git/[email-masked]/
> 
> Signed-off-by: Deveshi Dwivedi <[email-masked]>

Just realized, "--include-untracked" is not specific only to 'push' as
'show' accepts it too as an argument. "--keep-index" as well, but since
'save' is deprecated I don't think anyone would mind and should be fine
to leave it as is (though this is my opinion, should wait for others to
see what they think).