git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git stash --include-untracked possible destructive behavior
@ 2017-06-08 11:52 Marc Strapetz
  2017-06-08 22:13 ` Joel Teichroeb
  0 siblings, 1 reply; 5+ messages in thread
From: Marc Strapetz @ 2017-06-08 11:52 UTC (permalink / raw)
  To: git

One of our users has just discovered a destructive behavior of git stash 
--include-untracked: ignored files within non-ignored directories will 
not be stashed as untracked files (expected), but will still be removed 
from the working tree. The problem is reproducible by following command 
sequence:

   $ git init
   $ echo "1" > file.txt
   $ mkdir Data
   $ echo "1" > Data/ignored.txt
   $ echo "Data/*" > .gitignore
   $ git add .
   $ git commit -m "initial import"
   $ echo "2" > file.txt
   $ git stash save --include-untracked
   Saved working directory and index state WIP on master: 6ce5303 initial
   import

   $ git stash show stash@{1}
    file.txt | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

   $ ls Data
   ls: cannot access 'Data': No such file or directory

As you can see, after saving the stash, stash@{1} doesn't contain 
Data/ignored.txt, but the entire Data directory is still gone from the 
working tree. As a consequence, applying the stash won't bring back 
Data/ignored.txt, too.

   $ git stash apply
   On branch master
   Changes not staged for commit:
     (use "git add <file>..." to update what will be committed)
     (use "git checkout -- <file>..." to discard changes in working
     directory)

           modified:   file.txt

   no changes added to commit (use "git add" and/or "git commit -a")

   $ ls Data
   ls: cannot access 'Data': No such file or directory

Note that when changing .gitignore to "Data/" instead of "Data/*", 
--include-untracked works as expected.

Tested with: git version 2.13.0.windows.1

-Marc

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-06-09  8:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-08 11:52 git stash --include-untracked possible destructive behavior Marc Strapetz
2017-06-08 22:13 ` Joel Teichroeb
2017-06-08 22:29   ` Brandon Williams
2017-06-08 22:39     ` Joel Teichroeb
2017-06-09  8:28       ` Marc Strapetz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).