如何在Git中跟踪单个文件的历史记录时查看完整的提交?

时间:2009-12-29 12:21:06

标签: git gitk

我有一个大约有两年历史的Git存储库。我有单个文件,我希望找到所有提交,并为每个提交:在其中提交的所有其他文件。我们假设这个文件名为file.txt。我可以用这个文件作为参数运行gitk:

gitk file.txt

我确实得到了每次提交。但是,在gitk中浏览该树只会显示对file.txt所做的更改。我想看看那个提交中有哪些其他文件被更改了。我可以复制粘贴每个提交SHA1并显示它,但有超过一百个与此文件相关的提交。

我注意到屏幕右下角的“评论”部分为空(仅显示文本“评论”)。也许可以在那里显示文件列表?

3 个答案:

答案 0 :(得分:17)

在命令行中,

git log -p --full-diff file.txt

将输出您想要的内容。

如果你必须在gitk中看到它,用 no 参数调用它,找到提交“触摸路径”file.txt,并且提交包含该文件将是粗体。您可以使用“向上”和“向下”按钮遍历它。

答案 1 :(得分:11)

你实际上可以在gitk中使用'--full-diff'功能,而不是直接从命令行。 只需执行以下操作:

  • 以通常的方式开始gitk,例如:gitk file.txt
  • 选择'查看 - >从菜单中编辑视图...'。确认您正在编辑“命令行”视图。
  • 在“git log的附加参数”旁边的编辑框中,键入--full-diff
  • 单击“应用”或按[F5]。

应该这样做。为什么gitk不允许你在命令行中使用它对我来说是一个谜,因为它是一个非常有用的选项。

答案 2 :(得分:3)

邮件列表中的另一个解决方案可以追溯到2008

  

尝试关闭“限制差异到列出的路径”选项   首选项菜单(或在您的〜/ .gitk中添加“set limitdiffs 0”)。