From: Nanako Shiraishi Date: Wed, 11 Mar 2009 10:02:17 GMT Subject: Re: Confusing `stash apply` behavior Message-ID: <20090311190217.6117@nanako3.lavabit.com> In-Reply-To: Quoting Tim Visher : > 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 > 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 ..." to update what will be committed) > # (use "git checkout -- ..." 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/