19

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

gitk file.txt

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

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

4

3 回答 3

17

在命令行中,

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

会输出你想要的。

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

于 2009-12-29T12:25:36.117 回答
11

您实际上可以在 gitk 中拥有“--full-diff”功能,而不是直接从命令行。只需执行以下操作:

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

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

于 2012-10-09T04:00:46.817 回答
3

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

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

于 2013-11-19T07:35:14.747 回答