Thread (3 messages) flat view 3 messages, 2 authors, 2016-06-15

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help