On Mon, Oct 22, 2018 at 10:11:50AM +0200, Ralf Jung wrote: > Hi all, > > I have been repeatedly bitten by the default behavior of `git stash` to stash > not just the unstaged but also the staged changes, and then `git stash pop` > making all changes unstaged. This means `git stash && git stash pop`, per > default, loses information, and when I just spent 10min carefully selecting > hunks to be staged that's quite frustrating. > > I found that for myself, I usually expect `git stash` to only stash the changes > that are not yet staged. So I'd like to configure git such that `--keep-index` > is the default. That would also fix the information loss I mentioned above. > (By now I am also aware of `git stash pop --index`, but (a) that's not the > default either and (b) its documentation indicates it might not always work very > well.) However, going over the `git-config` man page, I have not found any way > to change the default behavior. Is that possible somehow? And if not, could > you consider this a feature request to add such an option? First, let me say that I'm speaking for myself and not the whole list. Other people may have other opinions, and some may want to see a patch before deciding. Personally, I am hesitant about such an option, since I know people use stash in scripts and hooks (whether that's a good idea or not), and ending up with an unclean tree after git stash would be surprising and could potentially cause data loss. (I have a co-worker who is doing exactly this.) We do have a --no-keep-index option, so there is an out for people who don't want that behavior, and maybe that's enough to avoid problems. I usually deal with this situation by using an alias, which lets me have more control over the exact behavior I want. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204