untracked cache: invalidate dirs recursively if .gitignore changes