git log -p -m --first-parent
This flag makes the merge commits show the full diff like regular commits; for each merge parent, a separate log entry and diff is generated. An exception is that only diff
against the first parent is shown when --first-parent option is given; in that case, the output represents the changes the merge brought into the then-current branch.
Follow only the first parent commit upon seeing a merge commit. This option can give a better overview when viewing the evolution of a particular topic branch, because merges
into a topic branch tend to be only about adjusting to updated upstream from time to time, and this option allows you to ignore the individual commits brought in to your
history by such a merge. Cannot be combined with --bisect.
git log 默认不会显示一个 merge 操作的所以 diff，而
-m 会为每个 merge parent 生成一个独立的diff。但有个例外就是和
--first-parent 一起使用，这种情况下，它的输出表示 merge 进当时当前分支的的所有 diff。