Używam następującego polecenia grepcode do rekurencyjnego przeszukiwania dużej liczby repozytoriów git. Drukuje ścieżkę znalezionych plików względem katalogu głównego repozytorium, jak mogę wydrukować ścieżkę bezwzględną pliku zamiast ścieżki względnej repozytorium.
grepcode() {
find . -type d -name .git |
parallel
"cd {.} &&
git grep --color -I --full-name -i '$@' }
--full-name
opcję, ponieważ powoduje, że git-grep uważa ścieżkę projektu za ścieżkę główną. Może być konieczne podanie bezwzględnej ścieżki do git-grep, aby mogła ona wygenerować tę bezwzględną ścieżkę. Spróbuj najpierw uzyskać ścieżkę bezwzględną, połącz ją z bieżącą ścieżką względną (pwd
), a następnie połącz zfind
wynikiem. Aby uzyskać absolutną ścieżkę, spróbuj pobawić się z tym: stackoverflow.com/questions/15798862/what-does-git-rev-parse-do