I'm still fairly new to git (coming from svn) and have found `git stash` to be 
really useful for storing in-progress work to resume later, as one might 
otherwise do with diff/patch files. (With the git tools I use, I find `git 
stash pop` to be more convenient and reliable than creating and applying diffs, 
partially because the changes remained tied to my repository and easily 
accessible.)

Since `git stash` defaults to stashing ALL local modifications, I'd like to 
request there be an easy way to stash *only* the changes I've already staged in 
the index. (The reason I suggested --cached is due to the similarity with `git 
diff --cached`, but I don't doubt there would be a better name for this option.)

I tried staging everything *except* what I want to stash and using `git stash 
save --keep-index <message>`, but it isn't intended to support this case, and 
doesn't work when I have new untracked files. Instead, it stashes *all* local 
(tracked) changes — both staged and unstaged — but leaves the staged changes 
intact in the index.

I understand that git's branching model is powerful and flexible, and that an 
experienced git user would generally create a private branch and commit to 
that, then merge the changes to mainline sometime later. However, for those 
like me for whom having many branches is generally more confusing than helpful, 
it would be fantastic to have more flexibility with `git stash`.

Thanks in advance for considering my request.

Regards,
 - Quinn

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to