Re: Confusing `stash apply` behavior
From: Nanako Shiraishi <hidden>
Date: 2016-06-15 22:46:22
Quoting Tim Visher [off-list ref]:
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 [off-list ref]
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/