如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[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中所有内容的集中历史。
其他回答
将此别名添加到.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输出完全相同。享受
在本例中,gitwhatchanged-p文件名也等效于gitlog-p文件名。
您还可以看到文件中的特定代码行何时更改为git责备文件名。这将为文件中的每一行打印一个简短的提交id、作者、时间戳和完整的代码行。当你发现了一个bug并且你想知道它是什么时候引入的(或者是谁的错),这是非常有用的。
我写git回放就是为了这个目的
pip install git-playback
git playback [filename]
这样既可以在命令行中显示结果(如gitlog-p),也可以使用箭头键(如gitk)逐步完成每次提交。
如果您使用TortoiseGit,您应该能够右键单击该文件并执行TortoiseGit-->显示日志。在弹出的窗口中,确保:
未选中“显示整个项目”选项。选中“所有分支”选项。
如果您将Eclipse与Git插件一起使用,那么它具有与历史的极好的比较视图。右键单击文件并选择“比较”→ “历史”。