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

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


当前回答

如果您将Eclipse与Git插件一起使用,那么它具有与历史的极好的比较视图。右键单击文件并选择“比较”→ “历史”。

其他回答

要获取特定文件的所有提交,请使用以下命令:

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图像

Or:

gitx--<path/to/filename>

如果你使用的是gitx

要显示文件每行的修订版本和作者上次修改的内容,请执行以下操作:

git blame filename

或者如果您想使用功能强大的责备GUI:

git gui blame filename

如何在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 diff --cached