Git finden die Zeile # der Änderung

307
BruteCode

Ich möchte herausfinden, wann in meinem aktuellen Zweig (Master) das letzte Mal eine bestimmte CSS-Eigenschaft im Quellcode entfernt wurde. Ich hab geschrieben:

git log -Smystring --source 

Es gab mir einen Haschisch. Ich habe gitk hochgefahren und den Hash eingefügt und es gab mir eine riesige Liste von Dateien, also vermute ich, dass es nur Zeilenenden waren. Ich habe die Zeichenfolge in gitk gesucht und kann die Zeichenfolge nicht finden. Vielleicht bedeutet das, dass es gelöscht wurde, aber sollte es sowieso nicht angezeigt - ...mystring...werden?

Wie finde ich die Zeile / Datei, in der sich meine Zeichenfolge befindet? Ich sehe die letzten paar Hashes, die den Befehl oben verwenden, aber ich habe keine Ahnung, wie ich ihn lokalisieren soll.

1

1 Antwort auf die Frage

0
chepner

So etwas wie

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

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

Sobald Sie wissen, in welchem ​​Commit Sie nachschauen möchten, können Sie verwenden

git grep -n LINE COMMIT:FILE 

um die LINE und ihre Zeilennummer in der entsprechenden Version von FILE zu finden.