git log ist im Allgemeinen der Befehl, der beim Überprüfen des Commitverlaufs verwendet wird. git log --grep
kann verwendet werden, um in der Commit-Nachricht nach regulären Ausdrücken zu suchen.
Was sind Sie nach ist git log -S
, die den Inhalt einfach oder git log -G
begehen sucht, die sie mit einem regulären Ausdruck sucht:
-S Blick für Unterschiede, die Einführung oder eine Instanz entfernen. Beachten Sie, dass dies anders ist als die Zeichenfolge, die einfach in der diff-Ausgabe erscheint; Weitere Informationen finden Sie in der Spitzhacke in gitdiffcore (7).
So zum Beispiel in der msysGit Repository kann ich das sagen zu, dass Tcl eingeführt 8.5.8 entweder:
C:\src\msysgit\src>git log --oneline --grep "8\.5\.8"
d938476 Make `NO_SFX=1 portable-release.sh` work
ef1dc94 Update tk to version 8.5.8
a910049 Update tcl to version 8.5.8
a702d7f tcltk: update to 8.5.8 and exclude release.sh from the cleanup list
, die für 8.5.8 sah nur in den Nachrichten begehen oder, wie Sie will in einer Zeichenfolge zu tun suchen, der nur in der engagierten diff aufgetreten:
C:\src\msysgit\src>git log --oneline -S"version=8.5.8"
7be8622 tcltk: update release.sh script for tcl/tk 8.5.9
a702d7f tcltk: update to 8.5.8 and exclude release.sh from the cleanup list
der Bereich begrenzt werden Sie in Ihrer Probe noch hier verwendet werden kann, die Commits geprüft werden zu begrenzen. Lesen Sie das git log Handbuch sorgfältig durch, um eine gute Vorstellung von all den Dingen zu bekommen, die es tun kann.
Beachten Sie, dass -S
sieht nur für einfache Zeichenfolge Unterschiede - wenn Sie wirklich den Inhalt mit einem regulären Ausdruck ähnlich wie Sie beispielsweise suchen möchten, dann sollten Sie die Option -G
statt -S
verwenden, aber dies wird deutlich langsamer.
möglich duplikat von [Wie grep (suchen) die git history?] (Http://stackoverflow.com/questions/2928584/how-to-grep-search-the-git-history) –
Hmm keine von denen Befehle sagen mir, aus welcher Revision das Suchergebnis stammt, nur die Datei, in der die Änderung erfolgte –
Ist für mich die SHA vor dem Dateinamen in den Ergebnissen. Ich habe den ersten Befehl in der ersten Antwort verwendet. Die [zweite Antwort] (http://stackoverflow.com/a/2928721/211563) gibt es wahrscheinlich mehr, was Sie suchen, und das gibt auch die SHA (vorausgesetzt, Ihr Protokollformat zeigt es). –