假设我有文件X
,该文件存在多年并且经过多次修改。我可以看到它的日志,并在日志中请求任何变化的差异。
现在,此文件已重命名为Y
(或已移至其他目录),并且已提交此更改。命令git log Y
的输出仅显示条目:最后一次重命名提交。但是,我可以使用--follow
选项解决此问题:git log --follow Y
将向我显示上次提交,但另外还有文件发生的所有更改,但仍有旧名称X
。< / p>
但是,我不知道如何在Git中查询该文件中的更改。当然,我可以在整个存储库中查询提交的更改,然后只读取相关的那部分。但git diff
是否有一些选项能够为我做到这一点?
[这非常重要,因为我使用的应用程序已切换到使用Maven,因此几乎所有源文件都被移动,有时甚至不止一次。]
答案 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