Просмотр истории перемещенных файлов 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 добавление -- перед тем, как путь / к / файлу, было именно тем, чего не хватало. Отлично работал после добавления этого. Благодаря!
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.