从Git请求从此移动的文件的历史差异

时间:2015-05-18 12:10:22

标签: git history renaming

假设我有文件X,该文件存在多年并且经过多次修改。我可以看到它的日志,并在日志中请求任何变化的差异。

现在,此文件已重命名为Y(或已移至其他目录),并且已提交此更改。命令git log Y的输出仅显示条目:最后一次重命名提交。但是,我可以使用--follow选项解决此问题:git log --follow Y将向我显示上次提交,但另外还有文件发生的所有更改,但仍有旧名称X。< / p>

但是,我不知道如何在Git中查询该文件中的更改。当然,我可以在整个存储库中查询提交的更改,然后只读取相关的那部分。但git diff是否有一些选项能够为我做到这一点?

[这非常重要,因为我使用的应用程序已切换到使用Maven,因此几乎所有源文件都被移动,有时甚至不止一次。]

1 个答案:

答案 0 :(得分:0)

您可以添加--stat以找出重命名的提交的sha-1是什么

git log --follow --stat b.txt

例如:

...
...
53f0655 ggg
a.txt => b.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
69a4b0a ggg
a.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
a67b02d ggg
a.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
b1168f7 ggg
a.txt | 1 +
1 file changed, 1 insertion(+)

正如您所看到的,最后一次提交是重命名,然后将其用作日志范围:

git log --follow --stat --oneline 53f0655...HEAD b.txt