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

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


当前回答

tig是一种基于终端的查看器,具有类似于基于GUI的gitk的颜色支持。

快速安装:

APT:APT-get-install tigHomebrew(OS X):$brew安装tig

使用它可以查看单个文件的历史记录:tig[filename]

或通过:tig浏览详细的存储库历史记录

其他回答

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

git diff --cached

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

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

您也可以尝试这个方法,它列出了更改文件特定部分的提交(在Git1.8.4中实现)。

返回的结果将是修改此特定部分的提交列表。命令:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

其中upperLimit是文件的起始行号,lowerLimit是结束行号。

更多详情请访问http://techpurohit.in/list-some-useful-git-commands.

阅读并播放一点后,总结其他答案:

通常的命令行命令是

git log --follow --all -p dir/file.c

但是,您也可以使用gitk(GUI)或tig(文本UI)来提供更多人类可读的方式来查看它。

gitk --follow --all -p dir/file.c

tig --follow --all -p dir/file.c

在Debian/Uubuntu下,这些可爱工具的安装命令如下所示:

sudo apt-get install gitk tig

我目前正在使用:

alias gdf='gitk --follow --all -p'

这样我就可以键入gdf-dir来获取子目录dir中所有内容的集中历史。

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

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