So prior to running git commit
I often will run the following:
git grep --cached -l -I "debugger"
I thought it was similar to:
git diff --cached
(which will show you all the changes you are about to commit, ie. will show you the diff in your staged files).
Unfortunately, I just found that the --cached
option for git grep
simply tells git to "only" look at everything in its index.
So how can I run git grep
and have it only grep through my staged files?
(Yes, I know I could simply do git diff --cached
and search in that, but I would rather have the programmatic ability to grep through my staged files.)
If you have a Unix-like shell available, the answer is pretty simple:
git grep --cached "debugger" $(git diff --cached --name-only)
This will run git grep
on the list of staged files.
A lot of pre-commit hooks use git diff-index --cached -S<pat> REV
to find changes which add or remove a particular pattern. So in your case, git diff-index --cached -Sdebugger HEAD
. You may want to add -u
to get a diff as well, otherwise it just identifies the offending file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With