git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/4] doc: git-reset: clarify `git reset <pathspec>`

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 17, 2025, 23:25 UTC
Message-ID
<xmqqa51pxg9p.fsf@gitster.g>
In-Reply-To
<0be166483f547de866744917e6cb19eed13a8088.1760731558.git.gitgitgadget@gmail.com>
"Julia Evans via GitGitGadget" <gitgitgadget@gmail.com> writes:
> +`git reset` only modifies the index: use linkgit:git-restore[1] instead
> +if you'd like to also update the file in your working directory.

I cannot judge if it is clear enough with the above sentence that we are only talking about "the other forms", but if that is the case and it is clear we are not talking about the mode where the command repoints HEAD to another commit, the above is a good piece of advice.

If not, perhaps
    When specified what paths to modify, `git reset` updates only
    the index (without updating the HEAD or working tree files).  If
    you want to update the files as well as the index entries, use
    git-restore.
may be a way to clarify the distinction between two modes.
Show 13 quoted lines
>  `git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>...]`::
> -	Interactively select hunks in the difference between the index
> -	and _<tree-ish>_ (defaults to `HEAD`).  The chosen hunks are applied
> -	in reverse to the index.
> +	Interactively select changes from the difference between the index
> +	and the specified commit or tree (which defaults to `HEAD`).
> +	The chosen changes are unstaged.
>  +
>  This means that `git reset -p` is the opposite of `git add -p`, i.e.
> -you can use it to selectively reset hunks. See the "Interactive Mode"
> -section of linkgit:git-add[1] to learn how to operate the `--patch` mode.
> +you can use it to selectively unstage changes. See the "Interactive Mode"
> +section of linkgit:git-add[1] to learn how to use the `--patch` option.

I do not see a good reason why we avoid saying the noun "patch", especially when we see it in the option. If we were allowed to say "patch" here, "changes from the difference between ..." can be rephrased to "parts of the patch that makes the index match the specified commit", which may be simpler.

Also "unstaged" is only true when <tree-ish> is "HEAD". If you are grabbing the contents recorded in a different commit and shoving them into the index, that is not "unstaging" at all. Rather, if you are planning to make a commit out of the index after doing so, that is rather "staging" a change! While the verb "to (un)stage" may have been a useful tool to explain the act of updating index entries to describe its effect relative to what is in HEAD, in this particular case, it is probably more confusing than illuninating to use it.

Previous: Julia Evans via GitGitGadgetNext: Ben Knoble
Message 17 of 39 in “doc: git-reset: clarify DESCRIPTION section”
  1. 0/4 doc: git-reset: clarify DESCRIPTION sectionJulia Evans via GitGitGadget, Oct 17, 2025
  2. 1/4 doc: git-reset: reorder the formsJulia Evans via GitGitGadget, Oct 17, 2025
  3. Junio C HamanoOct 17, 2025
  4. Julia EvansOct 20, 2025
  5. 2/4 doc: git-reset: clarify introJulia Evans via GitGitGadget, Oct 17, 2025
  6. Junio C HamanoOct 17, 2025
  7. Julia EvansOct 20, 2025
  8. Junio C HamanoOct 20, 2025
  9. D. Ben KnobleOct 20, 2025
  10. Julia EvansDec 3, 2025
  11. 3/4 doc: git-reset: clarify `git reset [mode]`Julia Evans via GitGitGadget, Oct 17, 2025
  12. Junio C HamanoOct 18, 2025
  13. Julia EvansOct 20, 2025
  14. D. Ben KnobleOct 20, 2025
  15. Junio C HamanoOct 20, 2025
  16. 4/4 doc: git-reset: clarify `git reset <pathspec>`Julia Evans via GitGitGadget, Oct 17, 2025
  17. Junio C HamanoOct 17, 2025
  18. Ben KnobleOct 18, 2025
  19. Junio C HamanoOct 18, 2025
  20. 0/4 doc: git-reset: clarify DESCRIPTION sectionD. Ben Knoble, Dec 19, 2025
  21. 1/4 doc: git-reset: reorder the formsD. Ben Knoble, Dec 19, 2025
  22. 2/4 doc: git-reset: clarify introD. Ben Knoble, Dec 19, 2025
  23. 3/4 doc: git-reset: clarify `git reset [mode]`D. Ben Knoble, Dec 19, 2025
  24. 4/4 doc: git-reset: clarify `git reset <pathspec>`D. Ben Knoble, Dec 19, 2025
  25. Junio C HamanoDec 30, 2025
  26. D. Ben KnobleJan 1, 2026
  27. 0/4 doc: git-reset: clarify DESCRIPTION sectionD. Ben Knoble, Jan 1, 2026
  28. 1/4 doc: git-reset: reorder the formsD. Ben Knoble, Jan 1, 2026
  29. 2/4 doc: git-reset: clarify introD. Ben Knoble, Jan 1, 2026
  30. Jean-Noël AVILAJan 2, 2026
  31. 3/4 doc: git-reset: clarify `git reset [mode]`D. Ben Knoble, Jan 1, 2026
  32. Jean-Noël AVILAJan 2, 2026
  33. 4/4 doc: git-reset: clarify `git reset <pathspec>`D. Ben Knoble, Jan 1, 2026
  34. 0/4 doc: git-reset: clarify DESCRIPTION sectionD. Ben Knoble, Jan 5, 2026
  35. 1/4 doc: git-reset: reorder the formsD. Ben Knoble, Jan 5, 2026
  36. 2/4 doc: git-reset: clarify introD. Ben Knoble, Jan 5, 2026
  37. 3/4 doc: git-reset: clarify `git reset [mode]`D. Ben Knoble, Jan 5, 2026
  38. 4/4 doc: git-reset: clarify `git reset <pathspec>`D. Ben Knoble, Jan 5, 2026
  39. Junio C HamanoJan 7, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.