Subject: Re: basics - auto staging?

From: Junio C Hamano <[email-masked]>
Date: Wed, 30 Apr 2025 09:44:04 -0700

Marcin Mikłas <[email-masked]> writes:

> when I execute
> git commit file.txt
> (by listing file as argumentbut without the -a switch) for a file
> file.txt that I have made changes without staged them in the index,
> the changes are still commited.
> Is there a way to make this work like command
> git commit
> without committing the changes that are not staged in the index?

I do not think there is.

The "git commit --only [<pathspec>...]" mode (which is the default)
was introduced as a variant whose blast radius is much smaller than
the "git commit --include [<pathspec>...]" mode (which was the only
mode before "--only" was introduced), but what you seem to be after
is a mode that is even finer-grained one.

I do not offhand see a reason why such a mode should not exist.  It
would be called the "git commit --cached [<pathspec>...]" mode (that
would be listed next to the existing "--only" and "--include" modes
in the documentation), by taking inspiration from the name of
another command "git diff --cached [<pathspec>...]" (i.e., use only
the contents already added to the index), if we were to add one.