Is it possible to tell whether a stash has already been applied, and therefore is no longer required, without doing git stash apply
? Assume that I\'m only using one
If you use git diff stash, make sure to use Git 2.30 (Q1 2021).
Before that, the code to see if "git stash drop"(man) can safely remove refs/stash has been made more careful.
See commit 4f44c56 (24 Oct 2020) by René Scharfe (rscharfe).
(Merged by Junio C Hamano -- gitster -- in commit 30f5257, 18 Nov 2020)
stash: simplify reflog emptiness check
Reported-by: Marek Mrva
Signed-off-by: René Scharfe
Calling rev-parse to check if the drop subcommand removed the last stash and treating its failure as confirmation is fragile, as the command can fail for other reasons, e.g. because the system is out of memory.
Directly check if the reflog is empty instead, which is more robust.
So the use of git rev-parse --verify --quiet
to check if the stash dropped was the ast one has been replaced.