search Git history, ignoring certain directory
Ever wanted to look through a Git repository’s history for a commits involving a specific string, but ignoring a certain directory (e.g. for packaged/built code)?
As of Git 1.9, you’re in luck! In the file listing, you can now exclude certain paths by starting them with :(exclude) (or :! but your shell might mess with that):
git log -u -S fooBar -- . ":(exclude)public/pkg/" ":(exclude)vendor/"
This will look through the current directory (., with the -- indicating the end of the options and the beginning of the paths) for commits which add or remove the string “fooBar”, but will not look through the public/pkg/ or vendor/ subdirectories of the current directory.
Tip of the hat to VonC on StackOverflow.