The man page git-log(1) says:
-r
Show recursive diffs.
So we can put this question in another way:
What is meant by "recursive diffs" in this context.
After getting this answer from @phd, I did some tests that aim in the indicated direction:
If I execute the following commands in a current version of the Git source repository (recently cloned from https://github.com/git/git.git) with checked out master
(currently pointing to commit 6a6c0f1
), they give identical output:
git log --name-only -m
git log --name-only -m -r
(For this to work, one might have to increase the diff.renameLimit
to round about 3150
.) I tried this with Git versions 2.10.2 and 2.17.1 obtaining equal results.
In addition, the command
git log --name-only -m master~..master
outputs
commit 6a6c0f10a70a6eb101c213b09ae82a9cad252743
Author: Junio C Hamano <[email protected]>
Date: Thu May 9 00:37:54 2019 +0900
The eighth batch
Signed-off-by: Junio C Hamano <[email protected]>
Documentation/RelNotes/2.22.0.txt
from the last line of which one can see that this command looks into subdirectories even without -r
.
-m
,-c
, and--cc
options have their documentation in the diff doc text files whcih are included from bothgit log
andgit show
documentation files. But the front-endlog
andshow
commands set the default values of these options quite differently. If you merely read the docs, you'll have the impression thatgit log
will default to showing a combined diff for a merge, but in factgit log
defaults to not showing any diff (git show
defaults to a combined diff). – Reiser