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

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


当前回答

Sourcetree用户

如果您使用Sourcetree可视化存储库(它是免费的,非常好),您可以右键单击文件并选择Log Selected

显示(下图)比gitk和列出的大多数其他选项友好得多。不幸的是(此时)没有从命令行启动此视图的简单方法-Sourcetree的CLI当前只打开存储库。

其他回答

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

通常的命令行命令是

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

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

gitk --all <filename>

对于图形视图,请使用gitk:

gitk [filename]

要跨文件重命名跟随文件,请执行以下操作:

gitk --follow [filename]

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

git diff --cached

最近我发现了tig,发现它非常有用。有些情况下,我希望它能做到A或B,但大多数时候它都很整洁。

对于您的情况,tig<filename>可能是您需要的。

https://jonas.github.io/tig/