Re: Confusing `stash apply` behavior
Quoting Tim Visher <tim.visher@gmail.com>:
Show 33 quoted lines
> 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/