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

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


当前回答

这使得Git可以为每个日志条目生成补丁:

git log -p -- filename

查看git帮助日志了解更多选项-它实际上可以做很多好事。:)


要获取特定提交的差异,请使用

git show HEAD

或通过标识符指定任何其他修订。


要直观浏览更改,请执行以下操作:

gitk

其他回答

将此别名添加到.gitconfig中:

[alias]
    lg = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\n--abbrev-commit --date=relative

使用如下命令:

> git lg
> git lg -- filename

输出看起来几乎与gitk输出完全相同。享受

要显示文件每行的修订版本和作者上次修改的内容,请执行以下操作:

git blame filename

或者如果您想使用功能强大的责备GUI:

git gui blame filename

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

通常的命令行命令是

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中所有内容的集中历史。

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

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 GUI(在Windows上):

在“存储库”菜单下,您可以使用“可视化大师的历史记录”。

突出显示顶部窗格中的提交和右下角的文件,您将在左下角看到该提交的差异。