On Sat, Oct 14, 2017 at 05:01:23PM +0200, Kevin Daudt wrote: > On Fri, Oct 13, 2017 at 01:35:22PM -0400, Jeff King wrote: > > On Fri, Oct 13, 2017 at 11:58:12AM +0900, 小川恭史 wrote: > > > > You can also just do: > > > > for i in 1 2 3; do > > git stash drop $i > > done > > > > Doesn't stash 2 become stash 1 after the first drop, and the same for 3, > resulting in dropping stash 1, 3 and 5? > > So something like > > for i in 3 2 1; do > git stash drop $i; > done > > Or leave $i out altogether. Oops, you're right. For that matter, I didn't double check that a single "reflog delete" handles this case correctly. That should be easy to test, though: git init echo base >file git add file git commit -m base for i in $(seq 10); do echo $i >file git stash push -m $i done git reflog delete --updateref --rewrite refs/stash@{1} refs/stash@{2} refs/stash@{3} That seems to leave: $ git stash list stash@{0}: On master: 10 stash@{1}: On master: 8 stash@{2}: On master: 6 stash@{3}: On master: 4 stash@{4}: On master: 3 stash@{5}: On master: 2 stash@{6}: On master: 1 which is not what we wanted (I'd guess also that it rewrites the reflog 3 times, negating any efficiency I claimed earlier). -Peff