It can be surprising that git-log doesn't show any diff for merge commits by default. Arguably "--cc" would be a reasonable default, but it's very expensive (which is why we turn it on for "git show" but not for "git log"). Let's at least document the current behavior, including the recent "--first-parent implies -m" case Signed-off-by: Jeff King <peff@xxxxxxxx> --- Documentation/git-log.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 0a4c99e5f8..9ccba65469 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -117,6 +117,13 @@ DIFF FORMATTING By default, `git log` does not generate any diff output. The options below can be used to show the changes made by each commit. +Note that unless one of `-c`, `--cc`, or `-m` is given, merge commits +will never show a diff, even if a diff format like `--patch` is +selected, nor will they match search options like `-S`. The exception is +when `--first-parent` is in use, in which merges are treated like normal +single-parent commits (this can be overridden by providing a +combined-diff option or with `--no-diff-merges`). + -c:: With this option, diff output for a merge commit shows the differences from each of the parents to the merge result -- 2.28.0.465.gd2839157e3