尽管阅读了很多关于GIT和移动文件的帖子,我仍然很难理解如何追踪完整的历史记录。按建议here执行gitk myfile
似乎只显示历史记录,直到上次移动为止。据我所知,GIT不会跟踪文件,只跟踪文件的内容。所以我肯定能够查看文件的完整演变,即使它被移动了吗?
有人可以指导我一个简单的好例子/教程吗?
我想看一个示例,其中一些文件被移动,更改和提交,然后显示单个文件的历史记录,移动和所有。我一直在看'日志',但这似乎与checkins有关。仍然会欣赏一些建议,即使它说我仍然在想太多SVN。
答案 0 :(得分:101)
尝试使用--follow
option to git log
:
git log --follow file.txt
答案 1 :(得分: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)