Git-Repo auf der Suche nach einer Zeichenkette in der alle übergebenen Dateien (unbekannt branch und commit)
Habe ich ein Stück code in einer anderen als meiner current-Zweig in meinem git repo, und ich bin mir nicht sicher, die sich dazu verpflichten und in welcher Branche. Wie kann ich die Suche in allen Dateien, die ich begangen, bis jetzt für eine bestimmte Zeichenfolge (und danach zeigen der Umgebung, dass die code-Zeile)?
- Mögliche Duplikate von: stackoverflow.com/questions/746684/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
git grep
suchen, um die commit:Den
git rev-list --all
macht es die Suche die gesamte Geschichte des Projekts.Geben, wird eine Ausgabe wie diese:
Dann können Sie
git branch --contains
um herauszufinden, welcher Zweig die Commits auf:git grep "string" $(git rev-list --all) -- path
.git grep 'abc' echo $(git rev-list --all)
zsh: argument list too long: git
Argument list too long
verwenden, können Siegit rev-list --all | xargs git grep 'abc'
: stackoverflow.com/a/49243541/9636Wenn die
git grep "string"
variation oben geben Sie "list too long" Fehler, können Siegit log -S
statt. Die option-S sucht den Inhalt von den Dateien, die begangen wurden:(Mehr in der "Pro Git" Buch unter "auf der Suche".)
ändern Sie den Zweig mit
git branch "branch-name"
tun, und danngit grep "specific string"
im repository root. wenn Sie nicht zu viele Zweige sollten Sie es schnell genug.Wenn jszakmeister Antwort gibt Ihnen einen
Argument list too long
Antwort:Können Sie pipe es in
xargs
statt: