如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
当前回答
使用优秀的Git扩展,您可以转到历史中文件仍然存在的位置(如果文件已被删除,否则只需转到HEAD),切换到文件树选项卡,右键单击文件并选择文件历史。
默认情况下,它通过重命名跟随文件,Blame选项卡允许查看给定版本的名称。
它有一些小缺点,比如显示致命错误:单击删除修订版时,“视图”选项卡中没有有效的对象名称,但我可以接受。:-)
其他回答
在Sourcetree UI中,您可以通过选择右键单击上下文菜单中的“Log Selected”选项来查找文件的历史记录:
它将显示所有提交的历史。
如果您正在使用Git GUI(在Windows上):
在“存储库”菜单下,您可以使用“可视化大师的历史记录”。
突出显示顶部窗格中的提交和右下角的文件,您将在左下角看到该提交的差异。
这使得Git可以为每个日志条目生成补丁:
git log -p -- filename
查看git帮助日志了解更多选项-它实际上可以做很多好事。:)
要获取特定提交的差异,请使用
git show HEAD
或通过标识符指定任何其他修订。
要直观浏览更改,请执行以下操作:
gitk
阅读并播放一点后,总结其他答案:
通常的命令行命令是
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图像