Ich möchte herausfinden, in welchem Commit ich den folgenden Code hinzugefügt habe:
if (getListView().getChildCount() == 0)
getActivity().findViewById(android.R.id.empty).setVisibility(View.VISIBLE);
Wie erreiche ich das?
Ich möchte herausfinden, in welchem Commit ich den folgenden Code hinzugefügt habe:
if (getListView().getChildCount() == 0)
getActivity().findViewById(android.R.id.empty).setVisibility(View.VISIBLE);
Wie erreiche ich das?
Antworten:
Führen Sie git blame
die Datei aus. Es zeigt Ihnen die Commit-ID, das Datum und die Uhrzeit sowie die Commit-ID für jede Zeile. Kopieren Sie dann einfach die Festschreibungskennung und Sie können sie in git log <commit>
oder verwenden git show <commit>
.
Zum Beispiel habe ich eine Datei namens test.txt mit Zeilen, die bei verschiedenen Commits hinzugefügt wurden:
$ cat test.txt
First line.
Second line.
Ausführen der git blame
:
$ git blame test.txt
^410c3dd (Leigh 2013-11-09 12:00:00 1) First line.
2365eb7d (Leigh 2013-11-09 12:00:10 2) Second line.
Das erste Bit ist die Festschreibungs-ID, dann der Name, dann Datum, Uhrzeit, Zeitzone und schließlich die Zeilennummer und der Zeileninhalt.
git blame test.txt | grep 'First line'
git log -S searchTerm
gibt Ihnen die Commits an, in denen der Suchbegriff eingeführt wurde.
Es gibt etwas Schnelleres, als die vollständige Datei zu beschuldigen. Wenn die Zeile ${lineno}
und die Datei ist ${filename}
, können Sie:
git blame -L ${lineno},${lineno} ${filename}
Beispiel:
git blame -L 2,2 test.txt
git log -S "mention here line of code" [file-path]
Zum Beispiel:
git log -S "First line" test.txt
Die Angabe des Dateinamens mit seinem Pfad ist offensichtlich, da wir meistens wissen möchten, wer ein bestimmtes Codesegment in eine bestimmte Datei eingeführt hat.
git log -S 'some code' path/to/file.c
Wenn Code im Git
Repository verwaltet wird und intellij
IDE zusammen mit dem Git-Plugin zum Durchsuchen des Codes verwendet wird, habe ich den folgenden Weg sehr intuitiv gefunden:
intellij
Die folgenden Screenshots dienen als Referenz: