[FEATURE] Proposal: git stash --only-unstaged

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I’ve run into a recurring workflow problem when splitting commits during an interactive rebase, and I think Git could benefit from an option to stash *only* the working tree (unstaged) changes, without saving or restoring the index (staged changes) at all.

---

**Scenario:**
- I have a commit that needs to be split.
- I stage the part of the changes that will remain in the earlier commit (this becomes the new, fixed commit). - The rest of the changes (which belong in a later commit) remain unstaged in the working tree. - I want to test the staged commit in isolation before actually committing it, without losing or committing the later changes. - After testing, I want to bring back the unstaged changes exactly as they were.

---

**Current limitations:**
- `git stash --keep-index` still saves the index in the stash object.
- When I later `git stash pop`, Git tries to restore those staged changes, often causing merge conflicts if I’ve modified them during the test. - `git stash -p` and `git diff`+`git apply` can work as workarounds, but they are clunky and error-prone in longer rebases.
- The goal is essentially:
> “stash the working tree only, leave the index untouched and unrecorded in the stash.”

---

**Proposed feature:**
A new option, for example: git stash push --only-unstaged

---

This would:
- Save only the unstaged working tree changes to the stash.
- Leave the index both in the working directory and completely absent from the stash object.
- Make `stash pop` safe even if the index has changed in the meantime.

---

**Benefits:**
- Cleaner workflows for splitting commits during interactive rebases.
- Safer testing of staged changes in isolation.
- Avoids unnecessary conflicts on stash pop.

---

I have not found an existing Git command that provides this exact behavior, nor an option to `git stash` that prevents the index from being stored in the stash object.

Has this been considered before? Would there be interest in adding such an option?

Thanks for your time and for Git!

J. Dettweiler





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux