From: Mirko Faina Date: Mon, 06 Apr 2026 18:15:11 GMT Subject: Re: [PATCH v3] stash: infer "push" when push-specific options are given Message-ID: In-Reply-To: <20260405110953.3316-1-deveshigurgaon@gmail.com> 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/xmqqtsu1jipp.fsf@gitster.g/ > > Signed-off-by: Deveshi Dwivedi 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).