2009-12-29 121 views
16

我有一个Git仓库,里面有两年的历史。我有一个单独的文件,为此我希望找到所有提交,并为每个提交:所有其他提交的文件。我们假设这个文件名为file.txt。我可以用这个文件作为参数运行gitk:如何在Git中跟踪单个文件的历史记录时查看完整提交?

gitk file.txt 

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

我注意到屏幕右下角的“注释”部分是空的(只显示文字“评论”)。也许可以在那里显示一个文件列表?你想要什么

+0

对于EOL别的地方看到http://unix.stackexchange.com/questions/10277/ignore-whitespaces-changes-in-all-git-commands – 2011-05-02 11:33:58

回答

15

在命令行中,

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

将输出。

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

+0

我已经编辑我的答案,希望这是你想要的。 – iamamac 2009-12-29 13:41:24

+0

优秀!正是我需要的。非常感谢(对不起,我只能赞成并接受它) – 2009-12-29 22:55:41

7

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

  • 启动gitk通常的方式,例如:gitk file.txt
  • 选择“视图 - >编辑观点......”从菜单中。确认您正在编辑'命令行'视图。
  • 在“附加参数到git日志”旁边的编辑框中,输入--full-diff
  • 单击“应用”或点击[F5]。

这应该做到这一点。为什么gitk不允许你从命令行使用它对我而言是个谜,因为它是一个非常有用的选项。

3

从邮件列表另一种解决方案在2008日早:

尝试在 喜好菜单关闭选项“限制的diff上市路径”(或增加“设置为0 limitdiffs”你〜 /.gitk)。

+0

这是唯一对我有用的解决方案..〜/ .gitk不起作用,但在首选项中更改可以正常工作 – nayana 2016-06-16 11:32:43

相关问题