以图形方式显示git log的等价物 - 在IntelliJ中跟随

Mik*_*378 8 git intellij-idea intellij-14

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

我的意思是:以git log --follow图形方式执行一种以查看旧版本; 在这些文件可能被重命名之前.

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

Von*_*onC 4

似乎--follow已被判定为“有缺陷”,但 git log 应该遵循 IDEA 上的重命名:

\n\n

请参阅“ IDEA-66700 git log 应该遵循重命名(--follow选项) ”:

\n\n
\n

结束:该请求不久前已修复(-\xe2\x80\x93follow尽管不是通过 buggy)。

\n
\n\n

您可以在“ IDEA-89370 Git:显示重命名文件夹的历史记录在重命名之前忽略历史记录”中找到更多信息

\n\n
\n

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

\n
\n\n

请注意(不一定是这里的情况)尝试显示重命名文件夹的历史记录无论如何都不起作用:

\n\n
\n

git log -- <dir>即使 with调用--follow也不遵循重命名,但这是合乎逻辑的,因为日志是按新目录名称过滤的,而旧名称与它不匹配。
\n 即 Git 本身不提供跨重命名的目录历史记录。

\n
\n\n
\n\n

对于某些类型的文件重命名,仍然存在问题:
\n“ IDEA-89347 Git:由于文件的循环重命名,未显示部分文件历史记录。

\n\n

git log --follow完美遵循所有这些重命名。但正如我们所知,它不显示合并。所以我们不能使用它。

\n\n
\n

相反,我们检索整个文件历史记录的算法需要改进。
\n 我们实际上需要查看每个修订版本并检查文件是否已重命名。

\n\n

当然,要求git show --name-status -M每次修改都是非常昂贵的。
\n 这是解决方案:调用git log --name-status并查看文件的那些修订版,其中添加了文件(git log即使使用“ -M”,也不会显示重命名,因为我们将其限制为提供的文件路径)。

\n
\n