I don't understand the need to rewrite history. This is a good example against that practice.
git log --first-parent -m
This will show a linear history of merges, treating the merged code as being added in the merge commit. You can add -p to see the diffs.