Re: defaulting git stash to --keep-index

2013-11-19 Thread Nathan Collins
On Tue, Nov 19, 2013 at 5:50 PM, Tim Chase g...@tim.thechases.com wrote:
 Having lost add -p work enough times when stashing, I finally
 dug into the docs to see how to prevent it, discovering that
 --keep-index does exactly what I want.

Note that 'git stash (pop | apply) --index' will reinstate the index
as it was at stash time, regardless of whether '--keep-index' was used
to create the stash.  In other words, your index is not lost when
you stash.

Also note: when you 'git stash --keep-index', although your index
remains intact, the changes in the your index still become part of the
stash.  Hence, any changes to the indexed portion of your files after
a stash usually result in a conflict on subsequent 'git stash pop'.
This confuses me quite a lot, since I'd expect a main use case of 'git
stash --keep-index' to be fixing a up a commit, but then any fixes
cause a conflict :P

Cheers,

-nathan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: defaulting git stash to --keep-index

2013-11-19 Thread Jason St. John
On Tue, Nov 19, 2013 at 8:50 PM, Tim Chase g...@tim.thechases.com wrote:
 Having lost add -p work enough times when stashing, I finally
 dug into the docs to see how to prevent it, discovering that
 --keep-index does exactly what I want.  However, now I have trouble
 remembering to add the --keep-index until after I've shot myself in
 the foot.  How do I go about getting git stash to default to
 --keep-index?  I've played around a little with aliases, but
 haven't found the right incantation.

 The existence of --no-keep-index suggests there's some way to make
 --keep-index the default, but I'm missing it.

 Thanks,

 -tkc



 --
 To unsubscribe from this list: send the line unsubscribe git in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

git-config(1) states that you cannot hide existing Git commands. In
other words, aliasing git stash to git stash --keep-index is not
possible. You could try playing around with the exclamation point
version (e.g. `git config alias.stash = !git stash --keep-index`),
but I suspect that Git will still not allow you to hide the existing
command.

If you are willing to switch to a new command, you can fix this
easily. For example, either of these would do what you want whenever
you run `git stsh` (note the missing a in stash) or `git stashki`:
`git config alias.stsh = stash --keep-index`
`git config alias.stashki = stash --keep-index`

Jason
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html