[BUG] git stash pop --quiet deletes files in git 2.24.0
- From
- Grzegorz Rajchman <rayman17@gmail.com>
- Date
- Nov 7, 2019, 10:36 UTC
- Message-ID
- <CAMcnqp22tEFva4vYHYLzY83JqDHGzDbDGoUod21Dhtnvv=h_Pg@mail.gmail.com>
Hi, this is the first time I report an issue in git so I hope I'm doing it right.
I have experienced some unexpected behaviour with git stash pop --quiet in git 2.24.0. I use stash in a pre-commit hook script. In it, I stash non-staged changes to keep the working directory clean while running some linters, then I restore the stash by running pop, but after the recent git update I noticed that it stages all previously checked files as deleted.
Steps to reproduce:
mkdir test-git-stash cd test-git-stash/ git init echo foo > foo.txt git add . && git commit -m 'init' echo bar > foo.txt git stash save --quiet --include-untracked --keep-index git stash pop --quiet git status
This will unexpectedly output:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: foo.txt Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.txtNotice that foo.txt was staged as deleted whilst still being present on the disk.
However, if I remove --quiet flag from stash pop:
git restore --staged foo.txt git stash save --quiet --include-untracked --keep-index git stash pop git status
Then it works as expected. It used to work as expected in git prior to 2.24.0
My OS is Ubuntu 19.04.