如何查看单个文件的历史记录以及更改内容的完整详细信息?

git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?


当前回答

如果要查看文件的整个历史记录,包括所有其他分支,请使用:

gitk --all <filename>

其他回答

在本例中,gitwhatchanged-p文件名也等效于gitlog-p文件名。

您还可以看到文件中的特定代码行何时更改为git责备文件名。这将为文件中的每一行打印一个简短的提交id、作者、时间戳和完整的代码行。当你发现了一个bug并且你想知道它是什么时候引入的(或者是谁的错),这是非常有用的。

git log --follow -p -- path-to-file

这将显示文件的整个历史记录(包括重命名后的历史记录以及每次更改的差异)。

换句话说,如果名为bar的文件曾经被命名为foo,那么git-log-p bar(不带--follow选项)将只显示文件重命名之前的历史记录——当它被称为foo时,它不会显示文件的历史记录。使用git-log--follow-p bar将显示文件的整个历史记录,包括文件名为foo时对其所做的任何更改。-p选项确保每个更改都包含差异。

要获取特定文件的所有提交,请使用以下命令:

git rev list HEAD--单行文件名


例如

git rev list HEAD--单行index.html

输出

7a2bb2f update_index_with_alias
6c03e56 update_changes
e867142 Revert "add_paragraph"

如果要查看对文件所做的更改

git-log-p文件名

查看gif图像

我写git回放就是为了这个目的

pip install git-playback
git playback [filename]

这样既可以在命令行中显示结果(如gitlog-p),也可以使用箭头键(如gitk)逐步完成每次提交。

如果要查看文件的整个历史记录,包括所有其他分支,请使用:

gitk --all <filename>