Git findet die Zeilennummer der Änderung

Git findet die Zeilennummer der Änderung

Ich möchte herausfinden, wann das letzte Mal eine bestimmte CSS-Eigenschaft im Quellcode meines aktuellen Zweigs (Master) entfernt wurde. Ich habe geschrieben:

git log -Smystring --source

Es gab mir einen Hash. Ich habe Gitk gestartet und den Hash eingefügt und es gab mir eine riesige Liste von Dateien, also vermute ich, dass es nur Zeilenenden waren. Ich habe jedoch in Gitk nach der Zeichenfolge gesucht und kann sie nicht finden. Vielleicht bedeutet das, dass sie gelöscht wurde, aber sollte Gitk sie nicht - ...mystring...sowieso anzeigen?

Wie finde ich die Zeile/Datei, in der sich mein String befindet? Mit dem obigen Befehl sehe ich die letzten paar Hashes, aber ich habe keine Ahnung, wie ich sie genau lokalisieren kann.

Antwort1

Etwas wie

git bisect start
git bisect bad AFTER
git bisect good BEFORE
git bisect run grep -v LINE FILE

wobei VORHER und NACHHER Commits sind, die die betreffende LINE enthalten bzw. nicht enthalten. Dies sollte das letzte Commit zwischen VORHER und NACHHER finden, in dem DATEI LINE enthält.

Sobald Sie wissen, in welchem ​​Commit Sie suchen müssen, können Sie

git grep -n LINE COMMIT:FILE

um die Zeile und ihre Zeilennummer in der entsprechenden Version von DATEI zu finden.

verwandte Informationen