如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
如何查看单个文件的历史记录以及更改内容的完整详细信息?
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图像
其他回答
最近我发现了tig,发现它非常有用。有些情况下,我希望它能做到A或B,但大多数时候它都很整洁。
对于您的情况,tig<filename>可能是您需要的。
https://jonas.github.io/tig/
SmartGit:
在菜单中启用以显示未更改的文件:查看/显示未更改文件右键单击文件并选择“日志”或按“Ctrl-L”
我写git回放就是为了这个目的
pip install git-playback
git playback [filename]
这样既可以在命令行中显示结果(如gitlog-p),也可以使用箭头键(如gitk)逐步完成每次提交。
git log --follow -p -- path-to-file
这将显示文件的整个历史记录(包括重命名后的历史记录以及每次更改的差异)。
换句话说,如果名为bar的文件曾经被命名为foo,那么git-log-p bar(不带--follow选项)将只显示文件重命名之前的历史记录——当它被称为foo时,它不会显示文件的历史记录。使用git-log--follow-p bar将显示文件的整个历史记录,包括文件名为foo时对其所做的任何更改。-p选项确保每个更改都包含差异。
阅读并播放一点后,总结其他答案:
通常的命令行命令是
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中所有内容的集中历史。