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

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


当前回答

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

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扩展,您可以转到历史中文件仍然存在的位置(如果文件已被删除,否则只需转到HEAD),切换到文件树选项卡,右键单击文件并选择文件历史。

默认情况下,它通过重命名跟随文件,Blame选项卡允许查看给定版本的名称。

它有一些小缺点,比如显示致命错误:单击删除修订版时,“视图”选项卡中没有有效的对象名称,但我可以接受。:-)

在Sourcetree UI中,您可以通过选择右键单击上下文菜单中的“Log Selected”选项来查找文件的历史记录:

它将显示所有提交的历史。

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

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

如果您使用TortoiseGit,您应该能够右键单击该文件并执行TortoiseGit-->显示日志。在弹出的窗口中,确保:

未选中“显示整个项目”选项。选中“所有分支”选项。

我要找的答案不在这里。这是为了查看我准备提交的文件中的更改。即。,

git diff --cached