如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
如何查看单个文件的历史记录以及更改内容的完整详细信息?
git-log--[filename]显示文件的提交历史,但如何查看更改的文件内容?
当前回答
最近我发现了tig,发现它非常有用。有些情况下,我希望它能做到A或B,但大多数时候它都很整洁。
对于您的情况,tig<filename>可能是您需要的。
https://jonas.github.io/tig/
其他回答
对于图形视图,请使用gitk:
gitk [filename]
要跨文件重命名跟随文件,请执行以下操作:
gitk --follow [filename]
Or:
gitx--<path/to/filename>
如果你使用的是gitx
在Sourcetree UI中,您可以通过选择右键单击上下文菜单中的“Log Selected”选项来查找文件的历史记录:
它将显示所有提交的历史。
如何在meld中以图形方式手动查看文件的更改历史
如果您只想查看哪个提交更改了文件,那么可以对它们执行gitdifftool,以图形方式查看meld的更改(如我在这里所解释的),请改为执行以下操作:
git log --follow --oneline -- path/to/file.c
样本运行和输出:
eRCaGuy_hello_world$ git log --follow --oneline -- c/alsa_aplay__play_tone_sound_WIP.c
04b67fb (HEAD -> master) Update c/alsa_aplay__play_tone_sound_WIP.c
301122a wip: alsa_aplay__play_tone_sound.c: finish initial version of program
d4e8092 wip: add c/alsa_aplay__play_tone_sound.c
现在我可以像这样以图形方式查看meld中的最后更改(从上面的输出中提取提交散列)。
请注意,我有意省略了文件名,以便它可以在文件重命名后自动为我正确跟踪文件,我知道这些提交可能只编辑了这个文件:
# just the last change
git difftool 04b67fb~..04b67fb
# and the one before that
git difftool 301122a~..301122a
# ...and before that
git difftool d4e8092~..d4e8092
如果需要指定文件名,只需使用:
git difftool 04b67fb~..04b67fb -- path/to/file.c
如果您正在使用Git GUI(在Windows上):
在“存储库”菜单下,您可以使用“可视化大师的历史记录”。
突出显示顶部窗格中的提交和右下角的文件,您将在左下角看到该提交的差异。