Chi-Lan Chi-Lan - 4 months ago 18
Git Question

git grep in the whole tree

Normally when I issue

git grep
, it will only search the current directory and below, for instance

$ cat A
1
$ cd d
$ cat B
1
$ git grep 1
B:1
$ cd ..;git grep 1
A:1
B:1


How can I tell
git grep
"search the entire tree, no matter the current working directory I'm in"?

Answer

Git aliases that run shell commands are always executed in the top level directory (see the git config man page), so you can add this to your .gitconfig file:

[alias]
    rgrep = !git grep

Alternatively, you could use git rev-parse --show-toplevel to get the root directory, which you could then pass to git grep as the basis of a script or alias:

git grep $pattern -- `git rev-parse --show-toplevel`
Comments