【发布时间】:2019-05-12 14:03:33
【问题描述】:
手册页git-log(1) 说:
-r
显示递归差异。
所以我们可以换个方式提出这个问题:
在这种情况下,“递归差异”是什么意思。
从@phd 那里得到this answer 后,我做了一些针对指定方向的测试:
如果我在当前版本的 Git 源存储库(最近从 https://github.com/git/git.git 克隆)中执行以下命令并签出 master(当前指向提交 6a6c0f1),它们会给出相同的输出:
git log --name-only -m
git log --name-only -m -r
(为此,可能需要将diff.renameLimit 增加到大约3150。)我在 Git 版本 2.10.2 和 2.17.1 上进行了尝试,获得了相同的结果。
另外,命令
git log --name-only -m master~..master
输出
commit 6a6c0f10a70a6eb101c213b09ae82a9cad252743
Author: Junio C Hamano <gitster@pobox.com>
Date: Thu May 9 00:37:54 2019 +0900
The eighth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/RelNotes/2.22.0.txt
从最后一行可以看出,即使没有-r,此命令也会查找子目录。
【问题讨论】:
-
与此类似,
-m、-c和--cc选项的文档位于 diff doc 文本文件中,git log和git show文档文件都包含这些文档。但是前端的log和show命令设置这些选项的default 值完全不同。如果您只是阅读文档,您会觉得git log将默认显示合并差异,但实际上git log默认为 not 显示 any 差异(git show默认为组合差异)。