Hi, I found very strange bug in git stash. Testcase attached to this mail.
1. I have a test repo with two modified files and one new file with content witch added to commit (see repo in attached file):
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: 3 # # 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: 1 # modified: 2 #
2. Stashing two modified files into stash named one:
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git stash save --keep-index one Saved working directory and index state On master: one HEAD is now at 7e495f9 files added
3. Checking status, files stashed successfully:
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: 3 #
4. Stashing one added to commit file into stash named zero:
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git stash save zero Saved working directory and index state On master: zero HEAD is now at 7e495f9 files added
5. Checking status, files stashed successfully:
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git status # On branch master nothing to commit, working directory clean
6. Trying to unstash first stashed changes (on step 2), there a bug:
nikolay@localhost:~/Desktop/git-stash_bug/bug$ git stash pop stash@{1} # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: 3 # # 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: 1 # modified: 2 # Dropped stash@{1} (7926ab7285753c179a368a3a7e8ebfb0f39d0437)
Why there a new empty file named 3?
I'm using git 1.8.1, same problem confirmed on git 1.7.12.4.
-- Nikolay Frantsev Homepage: http://frantsev.ru/