If you haven't tried https://github.com/ggreer/the_silver_searcher yet you're missing out
The progression is grep with a ton of flags (or even find | xargs grep) -> ack -> ag.
ag is faster than ack, automatically understands .gitignore, gives you .agignore as well, and is just a really nice piece of software.