在IntelliJ中以图形方式显示相当于git log --follow的内容

10

在IntelliJ 14中,有没有一种方法可以显示特定文件的完整日志?

我的意思是:以图形方式执行类似于git log --follow的操作,以便查看旧版本;在这些文件被重命名之前。

目前,当我在一个文件上执行Git => Show History时,它只显示相当于git log的内容。

1个回答

4
--follow 似乎被认为是“有缺陷的”,但是 git log 应该跟随 IDEA 上的重命名: 参见 "IDEA-66700 git log should follow renames (--follow option) ":

关闭:请求已经在一段时间前得到修复(不是通过有缺陷的 -–follow)。

你可以在 "IDEA-89370 Git: show history for renamed folder omits history before rename " 中找到更多信息:

我们不使用 --follow(因为它存在缺陷):相反,我们在最后一个提交上调用 git show -M,检查文件是否在此提交中被重命名,在这种情况下,请求旧文件名的历史记录,依此类推。

请注意,尝试显示重命名的文件夹的历史记录可能无法正常工作(这不一定是本例子的情况)。
调用git log -- <dir>即使使用--follow也不会跟随重命名,这是合理的,因为日志是通过新目录名称过滤的,而旧名称与其不匹配。即Git本身不提供跨重命名目录的历史记录。
对于某些文件重命名,仍然存在问题:
IDEA-89347 Git:由于文件的循环重命名,部分文件历史记录未显示。git log --follow 完美地跟踪所有这些重命名。但是我们知道,它不会显示合并。因此,我们不能使用它。
相反,我们检索整个文件历史的算法需要改进。
我们实际上需要查看每个版本,并检查文件是否在其中重命名。
当然,为每个版本调用 git show --name-status -M 非常昂贵。
这里是解决方案:调用 git log --name-status 并查看该文件的那些修订版本,在这些版本中,该文件被添加(即重命名不会在 git log 中显示,即使使用 "-M",因为我们将其限制为提供的文件路径)。

如何解释结果呢?我没有看到所有相关的提交。 - Mik378
@Mik378 你使用的是哪个版本的 IntelliJ IDEA? - VonC
我只是在说明一下:我正在使用最新的版本:14(发布版)。 - Mik378
@Mik378 我已经编辑了答案。你是在检查文件夹还是文件的日志? - VonC
有趣的解释。 - Mik378
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接