Smarter gitignore rules