# Confusing `stash apply` behavior

3 messages from 2009-03-10 to 2009-03-11. Participants: Tim Visher, Nanako Shiraishi.
Thread: https://gitlist.dev/t/18254

## Tim Visher, 2009-03-10 19:46

Subject: Confusing `stash apply` behavior
Message-ID: <c115fd3c0903101246n1eff50d4rc819e5fe7586a974@mail.gmail.com>
URL: https://gitlist.dev/e/c115fd3c0903101246n1eff50d4rc819e5fe7586a974%40mail.gmail.com

```
Hello Everyone,

I was just trying to do some experimentation with `stash` and I've run
into a problem.

I was working on my `master` branch and decided that I wanted to
create a `dev` branch.  I did `git stash` and then `git checkout -b
dev`.  Then I did `git stash apply` and everything worked as expected.
 I continued working but then realized that I wanted a `refactoring`
branch.  In the process of continuing to work I had also cleared the
stash stack with `git stash clear`, although this had no visible
effect other than to remove any entries from `git stash list`.  As
before, I did `git stash` and then `git checkout -b refactoring` and
here lies my problem.

When I do `git stash apply`, it deletes the file I'm working with.

    $ ls
    featureList.txt*  keycontrol.mdb*

    $ git show stash@{0}
    commit b3c0f4b9b3c3ef7741a03fb27174f5838abc939d
    Merge: 9fb9886 112bba9
    Author: Tim Visher <timothy.visher@fms.treas.gov>
    Date:   Tue Mar 10 15:25:04 2009 -0400

    WIP on dev: 9fb9886 Added DB Lock file to .gitignore. EOM

    diff --cc keycontrol.mdb
    index 68a9bac,68a9bac..0000000
    --- a/keycontrol.mdb
    +++ b/keycontrol.mdb

    $ git stash apply
    Removing keycontrol.mdb
    # On branch refactoring
    # Changed but not updated:
    #   (use "git add/rm <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working
directory)
    #
    #       deleted:    keycontrol.mdb
    #
    no changes added to commit (use "git add" and/or "git commit -a")

Considering the output of `git show` I would expect that the contents
of the stash are, well, what I expect them to be: a new version of
keycontrol.mdb.

I'm sure I'm missing something completely juvenile but I could really
use some help because that stash represents about an hours worth of
work.  Not something to totally loose sleep over but something that
would be nicer to not have to do over.

Thanks in advance for your help!

-- 

In Christ,

Timmy V.

http://burningones.com/
http://five.sentenc.es/ - Spend less time on e-mail

```

## Nanako Shiraishi, 2009-03-11 10:02

Subject: Re: Confusing `stash apply` behavior
Message-ID: <20090311190217.6117@nanako3.lavabit.com>
URL: https://gitlist.dev/e/20090311190217.6117%40nanako3.lavabit.com
In-Reply-To: <c115fd3c0903101246n1eff50d4rc819e5fe7586a974@mail.gmail.com>

```
Quoting Tim Visher <tim.visher@gmail.com>:

> When I do `git stash apply`, it deletes the file I'm working with.
>
>     $ ls
>     featureList.txt*  keycontrol.mdb*
>
>     $ git show stash@{0}
>     commit b3c0f4b9b3c3ef7741a03fb27174f5838abc939d
>     Merge: 9fb9886 112bba9
>     Author: Tim Visher <timothy.visher@fms.treas.gov>
>     Date:   Tue Mar 10 15:25:04 2009 -0400
>
>     WIP on dev: 9fb9886 Added DB Lock file to .gitignore. EOM
>
>     diff --cc keycontrol.mdb
>     index 68a9bac,68a9bac..0000000
>     --- a/keycontrol.mdb
>     +++ b/keycontrol.mdb
>
>     $ git stash apply
>     Removing keycontrol.mdb
>     # On branch refactoring
>     # Changed but not updated:
>     #   (use "git add/rm <file>..." to update what will be committed)
>     #   (use "git checkout -- <file>..." to discard changes in working
> directory)
>     #
>     #       deleted:    keycontrol.mdb
>     #
>     no changes added to commit (use "git add" and/or "git commit -a")
>
> Considering the output of `git show` I would expect that the contents
> of the stash are, well, what I expect them to be: a new version of
> keycontrol.mdb.

The 'index' line in your 'diff --cc' output says that back when you created that stash, the HEAD and your index both held a blob object 68a9bac and your working tree didn't have that file, ie, removed. It is very natural that the file is removed when you apply that stash.

-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/

```

## Tim Visher, 2009-03-11 12:45

Subject: Re: Confusing `stash apply` behavior
Message-ID: <c115fd3c0903110545o67b00fe2u3bb4924b5c84c0ce@mail.gmail.com>
URL: https://gitlist.dev/e/c115fd3c0903110545o67b00fe2u3bb4924b5c84c0ce%40mail.gmail.com
In-Reply-To: <20090311190217.6117@nanako3.lavabit.com>

```
On Wed, Mar 11, 2009 at 6:02 AM, Nanako Shiraishi <nanako3@lavabit.com> wrote:
> Quoting Tim Visher <tim.visher@gmail.com>:
>
>> When I do `git stash apply`, it deletes the file I'm working with.
>>
>>     $ ls
>>     featureList.txt*  keycontrol.mdb*
>>
>>     $ git show stash@{0}
>>     commit b3c0f4b9b3c3ef7741a03fb27174f5838abc939d
>>     Merge: 9fb9886 112bba9
>>     Author: Tim Visher <timothy.visher@fms.treas.gov>
>>     Date:   Tue Mar 10 15:25:04 2009 -0400
>>
>>     WIP on dev: 9fb9886 Added DB Lock file to .gitignore. EOM
>>
>>     diff --cc keycontrol.mdb
>>     index 68a9bac,68a9bac..0000000
>>     --- a/keycontrol.mdb
>>     +++ b/keycontrol.mdb
>>
>>     $ git stash apply
>>     Removing keycontrol.mdb
>>     # On branch refactoring
>>     # Changed but not updated:
>>     #   (use "git add/rm <file>..." to update what will be committed)
>>     #   (use "git checkout -- <file>..." to discard changes in working
>> directory)
>>     #
>>     #       deleted:    keycontrol.mdb
>>     #
>>     no changes added to commit (use "git add" and/or "git commit -a")
>>
>> Considering the output of `git show` I would expect that the contents
>> of the stash are, well, what I expect them to be: a new version of
>> keycontrol.mdb.
>
> The 'index' line in your 'diff --cc' output says that back when you created that stash, the HEAD and your index both held a blob object 68a9bac and your working tree didn't have that file, ie, removed. It is very natural that the file is removed when you apply that stash.

Huh.  I don't know how that would have happened, but I guess I should
have been more careful with the stash command.  Oh well.

Thanks for your help!

-- 

In Christ,

Timmy V.

http://burningones.com/
http://five.sentenc.es/ - Spend less time on e-mail

```
