smarter git ignore