# Git Stash stages files if there is a conflict

4 messages from 2010-10-15 to 2010-10-18. Participants: Pretty Boy Floyd, Tor Arntsen, Eric Raible, Aaron Boxer.
Thread: https://gitlist.dev/t/25455

## Pretty Boy Floyd, 2010-10-15 20:13

Subject: Git Stash stages files if there is a conflict
Message-ID: <loom.20101015T220924-952@post.gmane.org>
URL: https://gitlist.dev/e/loom.20101015T220924-952%40post.gmane.org

```
Hello!

I am running msysgit 1.7.3.1.  If I run stash apply, and there is a conflict,
all of my stash changes get staged. Is this the correct behaviour? I found it a
little surprising.

Another question: if I have stashed 10 files, and there is a conflict in one of
them, will stash apply abort when it has a conflict, or will it apply all
non-conflicted files.


Finally, if I do the following:

git stash
git pull
git stash apply

and another developer has removed a file that I have stashed, then I am unable
to apply the stash  on this file. How can I retrieve my changes from the stash?


Thanks!

```

## Tor Arntsen, 2010-10-18 09:33

Subject: Re: Git Stash stages files if there is a conflict
Message-ID: <AANLkTimrVgegd4mHsEbhs3O78T=zkF4Ns7F2LMEKjm=C@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTimrVgegd4mHsEbhs3O78T%3DzkF4Ns7F2LMEKjm%3DC%40mail.gmail.com
In-Reply-To: <loom.20101015T220924-952@post.gmane.org>

```
On Fri, Oct 15, 2010 at 22:13, Pretty Boy Floyd <boxerab@gmail.com> wrote:
> Hello!
>
> I am running msysgit 1.7.3.1.  If I run stash apply, and there is a conflict,
> all of my stash changes get staged. Is this the correct behaviour? I found it a
> little surprising.

I have no answer to the above, just noting that I observed exactly the
same yesterday (git 1.7.1) and was a little surprised too. Not that it
created any problems as such, just raised eyebrows.

[..]

-Tor

```

## Eric Raible, 2010-10-18 17:18

Subject: Re: Git Stash stages files if there is a conflict
Message-ID: <4CBC8161.3080507@nextest.com>
URL: https://gitlist.dev/e/4CBC8161.3080507%40nextest.com
In-Reply-To: <loom.20101015T220924-952@post.gmane.org>

```
On 11:59 AM, Pretty Boy Floyd wrote:
> Hello!
> 
> I am running msysgit 1.7.3.1.  If I run stash apply, and there is a conflict,
> all of my stash changes get staged. Is this the correct behaviour? I found it a
> little surprising.

My tests indicate that the same thing happens as with any conflicted merge.
Namely: non-conflicting changes get staged, and conflicting changes are left
only in the working directory (with conflict markers added as appropriate).

See http://progit.org/book/ch3-2.html#basic_merging,
especially the part on conflicts.

> Another question: if I have stashed 10 files, and there is a conflict in one of
> them, will stash apply abort when it has a conflict, or will it apply all
> non-conflicted files.

Same as above.  In both cases the stash is unaffected, which allows
you to reset and try again.

> Finally, if I do the following:
> 
> git stash
> git pull
> git stash apply
> 
> and another developer has removed a file that I have stashed, then I am unable
> to apply the stash  on this file. How can I retrieve my changes from the stash?

One nice (relatively new feature) is "git stash branch", which makes a new
branch from an existing stash.

HTH - Eric

```

## Aaron Boxer, 2010-10-18 17:56

Subject: Re: Git Stash stages files if there is a conflict
Message-ID: <AANLkTinC_e=5RKQ2wiy3NtxmsXkiMYKv1+hXWGXd25Pn@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTinC_e%3D5RKQ2wiy3NtxmsXkiMYKv1%2BhXWGXd25Pn%40mail.gmail.com
In-Reply-To: <4CBC8161.3080507@nextest.com>

```
Thanks, Eric. The new git stash branch command you mentioned will come in handy.

From a user's perspective, it doesn't make sense to stage unconflicted
changes after stash apply.
When I stash changes, these changes are usually not ready for committing.

I suppose git uses the index to differentiate between conflicted and
unconflicted changes.
So, its not a big deal. Just a bit surprising.

Thanks again for your help!




On Mon, Oct 18, 2010 at 1:18 PM, Eric Raible <raible@nextest.com> wrote:
> On 11:59 AM, Pretty Boy Floyd wrote:
>> Hello!
>>
>> I am running msysgit 1.7.3.1.  If I run stash apply, and there is a conflict,
>> all of my stash changes get staged. Is this the correct behaviour? I found it a
>> little surprising.
>
> My tests indicate that the same thing happens as with any conflicted merge.
> Namely: non-conflicting changes get staged, and conflicting changes are left
> only in the working directory (with conflict markers added as appropriate).
>
> See http://progit.org/book/ch3-2.html#basic_merging,
> especially the part on conflicts.
>
>> Another question: if I have stashed 10 files, and there is a conflict in one of
>> them, will stash apply abort when it has a conflict, or will it apply all
>> non-conflicted files.
>
> Same as above.  In both cases the stash is unaffected, which allows
> you to reset and try again.
>
>> Finally, if I do the following:
>>
>> git stash
>> git pull
>> git stash apply
>>
>> and another developer has removed a file that I have stashed, then I am unable
>> to apply the stash  on this file. How can I retrieve my changes from the stash?
>
> One nice (relatively new feature) is "git stash branch", which makes a new
> branch from an existing stash.
>
> HTH - Eric
>

```
