Anzeigen des GIT-Verlaufs verschobener Dateien

80

Obwohl ich viele andere Beiträge zu GIT und verschobenen Dateien gelesen habe, habe ich immer noch Schwierigkeiten zu verstehen, wie man den gesamten Verlauf verfolgt. Wenn Sie gitk myfilewie hier vorgeschlagen vorgehen, wird nur die Geschichte bis zum vorherigen Schritt angezeigt. Ich verstehe, dass GIT keine Dateien verfolgt, sondern nur deren Inhalt. Ich sollte also sicher in der Lage sein, die gesamte Entwicklung einer Datei anzuzeigen, selbst wenn sie verschoben wurde.

Kann mich jemand zu einem guten, aber einfachen Beispiel / Tutorial führen?

Ich würde gerne ein Beispiel sehen, in dem einige Dateien verschoben, geändert und festgeschrieben werden. Dann wird der Verlauf einer einzelnen Datei angezeigt, verschoben und alles. Ich habe mir 'log' angesehen, aber das scheint das Einchecken zu betreffen. Würde mich immer noch über einen Rat freuen, auch wenn es heißt, dass ich irgendwie immer noch zu viel über SVN nachdenke.

Pengin
quelle

Antworten:

110

Versuchen Sie, die --followOption zu verwenden, umgit log :

git log --follow file.txt
Greg Hewgill
quelle
7
Beachten Sie, dass der --followMechanismus derzeit angeschraubt ist und in einigen Eckfällen nicht funktioniert.
Jakub Narębski
2
Wenn Sie erhalten fatal: ambiguous argument 'file.txt': unknown revision or path not in the working tree, versuchen Sie git log --follow - file.txt
nealmcb
2
@nealmcb Hinzufügen der -- vor dem Pfad / zu / Datei war genau das, was fehlte. Hat super funktioniert, nachdem ich das hinzugefügt habe. Vielen Dank!
Bkidd
1

Mit git logbeiden verwenden --followund --patchdas Protokoll mit dem Umbenennen von / Umbenennen in Ausgabe anzeigen. Und vergessen Sie nicht den --vor dem Dateipfad.

git log --follow --patch -- path/to/file.ext

Zum Beispiel zeigt der Verlauf der Datei testdir/more-testing.txtauf meinem System:

Date:   Wed Mar 18 14:48:07 2020 -0700

   renamed file

diff --git a/testdir/testing.txt b/testdir/more-testing.txt
similarity index 100%
rename from testdir/testing.txt
rename to testdir/more-testing.txt

commit feb58d3ab8e8ce940f80499df0c46e8fc8caf679
Author: Igal <redacted>
Date:   Wed Mar 18 14:47:18 2020 -0700

   moved test.txt to subdirectory and renamed

diff --git a/test.txt b/testdir/testing.txt
similarity index 100%
rename from test.txt
rename to testdir/testing.txt

commit 34c4a7cebaeb0df5afb950972d69adea6b1a7560
Author: Igal <redacted>
Date:   Wed Mar 18 14:45:58 2020 -0700

   added test.txt

diff --git a/test.txt b/test.txt
new file mode 100644
index 000000000..0527e6bd2
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+This is a test
(END)

Isapir
quelle