# defaulting git stash to "--keep-index"

3 messages from 2013-11-20 to 2013-11-20. Participants: Tim Chase, Nathan Collins, Jason St. John.
Thread: https://gitlist.dev/t/35364

## Tim Chase, 2013-11-20 01:50

Subject: defaulting git stash to "--keep-index"
Message-ID: <20131119195009.6d4e183b@bigbox.christie.dr>
URL: https://gitlist.dev/e/20131119195009.6d4e183b%40bigbox.christie.dr

```
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

```

## Nathan Collins, 2013-11-20 02:08

Subject: Re: defaulting git stash to "--keep-index"
Message-ID: <CAO8RVvdMD+xWrkwk+9Nbm7oyTTkc50PURxJe67ygkkTN-L41zw@mail.gmail.com>
URL: https://gitlist.dev/e/CAO8RVvdMD%2BxWrkwk%2B9Nbm7oyTTkc50PURxJe67ygkkTN-L41zw%40mail.gmail.com
In-Reply-To: <20131119195009.6d4e183b@bigbox.christie.dr>

```
On Tue, Nov 19, 2013 at 5:50 PM, Tim Chase <git@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

```

## Jason St. John, 2013-11-20 02:10

Subject: Re: defaulting git stash to "--keep-index"
Message-ID: <CAEjxke_FNoj__J0y6JoXiFTAYY7WGDP4ntwJXcJO8=gxASbQCQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAEjxke_FNoj__J0y6JoXiFTAYY7WGDP4ntwJXcJO8%3DgxASbQCQ%40mail.gmail.com
In-Reply-To: <20131119195009.6d4e183b@bigbox.christie.dr>

```
On Tue, Nov 19, 2013 at 8:50 PM, Tim Chase <git@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 majordomo@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

```
