Suppose I create a file: echo hello >greeting git add greeting git commit Now I want to get back to the tree from the previous commit. So I use 'git checkout': git checkout HEAD^ -- . ls greeting 'greeting' isn't deleted. Fixing this would probably involve introducing a --no-ignore-removal flag and slowly swapping the default, like was done for 'git add' in v2.0.