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

stashing only unstaged changes?

From
TCTim Chase <git@tim.thechases.com>
Date
Jun 21, 2022, 19:26 UTC
Message-ID
<20220621142618.239b02cd@bigbox.attlocal.net>

I recently had composed a commit with some `git add -p` leaving some portions unstaged. I wanted to stash the unstaged changes to make sure that the staged code ran as expected, so I did a `git stash` only to find that it unstaged my staged changes and stashed *everything*.

Using `git stash --saved` does the opposite of what I want (stashing the index, not the difference between the index and the working-copy)

So I carefully re-`git add -p`'ed everything and tried `git stash --keep-index` which sounded promising (my index remained the same), but popping my stash ended up causing conflicts because it had stashed the diff of HEAD..working-copy, not INDEX..working-copy. A `git stash show -p` confirmed that the stash included things that I had already staged.

So I carefully re-`git add -p`ed everything yet again, but then got stuck trying to convince `stash` to save a snapshot of only the diff in my working directory. To work around it, I did a `git diff > temp.patch` to obtain the stuff I'd wanted to stash, a `git reset --staged` to clear out those changes, ran my code to verify (eventually committing it), and then applied the `temp.patch` back on top of my changes. It worked, but felt convoluted.

I did see the `git stash -p` option, to manually choose the inverse bits, but for what I was doing, it was more sensible to `git add -p` and try to stash the rest.

So is there some option I've missed to tell `git stash` to stash only the delta between the uncommitted-index and the working-copy?

Thanks,
-Tim
(I'd posted this on /r/git
https://www.reddit.com/r/git/comments/vchu83/stashing_only_unstaged_changes/
but figured I'd try my hand here in the hope of more answers)
Next: Reto
Message 1 of 10 in “stashing only unstaged changes?”
  1. Tim ChaseJun 21, 2022
  2. RetoJun 24, 2022
  3. Tim ChaseJun 24, 2022
  4. Konstantin KhomoutovJun 24, 2022
  5. Erik Cervin EdinJun 24, 2022
  6. Tim ChaseJun 24, 2022
  7. Ævar Arnfjörð BjarmasonJun 24, 2022
  8. Erik Cervin EdinJun 24, 2022
  9. Ævar Arnfjörð BjarmasonJun 24, 2022
  10. Junio C HamanoJun 24, 2022

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.