Перегляд історії переміщених файлів GIT


80

Незважаючи на читання багатьох інших публікацій щодо GIT та переміщених файлів, я все ще намагаюся зрозуміти, як простежити повну історію. Робить, gitk myfileяк запропоновано тут здається, показує лише історію до попереднього переходу. Я розумію, що GIT не відстежує файли, а лише їх вміст. Тож, безумовно, я мав би змогу переглянути повну еволюцію файлу, навіть якщо його було переміщено?

Хтось може направити мене на хороший, але простий приклад / підручник?

Я хотів би побачити приклад, коли деякі файли переміщуються, змінюються та фіксуються, потім відображається історія одного файлу, переміщується та все. Я переглядав "журнал", але це, схоже, стосується реєстрацій. Буду вдячний за пораду, навіть якщо в ньому сказано, що я якось все ще занадто багато думаю про SVN.


Відповіді:


110

Спробуйте скористатися --followопцією, щобgit log :

git log --follow file.txt

7
Зверніть увагу, що в даний час --followмеханізм закріплений на болтах і не працює в деяких кутових випадках.
Якуб Нарембський,

2
Якщо отримаєте fatal: ambiguous argument 'file.txt': unknown revision or path not in the working tree, спробуйте git log --follow - file.txt
nealmcb

2
@nealmcb додавання -- до path / to / file було саме тим, чого не вистачало. Відмінно працював після додавання цього. Дякую!
bkidd

1

Використовуйте git logз обома, --followі --patchякий відображатиме журнал із перейменуванням з / перейменувати на вихід. І не забувайте про --шлях до файлу.

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

Наприклад, історія файлів testdir/more-testing.txtу моїй системі показує:

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)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.