如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
当前回答
git log --follow -p -- path-to-file
这将显示文件的整个历史记录(包括重命名后的历史记录以及每次更改的差异)。
换句话说,如果名为bar的文件曾经被命名为foo,那么git-log-p bar(不带--follow选项)将只显示文件重命名之前的历史记录——当它被称为foo时,它不会显示文件的历史记录。使用git-log--follow-p bar将显示文件的整个历史记录,包括文件名为foo时对其所做的任何更改。-p选项确保每个更改都包含差异。
其他回答
对于图形视图,请使用gitk:
gitk [filename]
要跨文件重命名跟随文件,请执行以下操作:
gitk --follow [filename]
在本例中,gitwhatchanged-p文件名也等效于gitlog-p文件名。
您还可以看到文件中的特定代码行何时更改为git责备文件名。这将为文件中的每一行打印一个简短的提交id、作者、时间戳和完整的代码行。当你发现了一个bug并且你想知道它是什么时候引入的(或者是谁的错),这是非常有用的。
我写git回放就是为了这个目的
pip install git-playback
git playback [filename]
这样既可以在命令行中显示结果(如gitlog-p),也可以使用箭头键(如gitk)逐步完成每次提交。
tig是一种基于终端的查看器,具有类似于基于GUI的gitk的颜色支持。
快速安装:
APT:APT-get-install tigHomebrew(OS X):$brew安装tig
使用它可以查看单个文件的历史记录:tig[filename]
或通过:tig浏览详细的存储库历史记录
这使得Git可以为每个日志条目生成补丁:
git log -p -- filename
查看git帮助日志了解更多选项-它实际上可以做很多好事。:)
要获取特定提交的差异,请使用
git show HEAD
或通过标识符指定任何其他修订。
要直观浏览更改,请执行以下操作:
gitk