When you merge two branches together, git creates a separate commit with a message like Merge branch \'master\' into my-branch
.
For a non-trivial merge it is clear
I think there are several reasons why having separate merge commits is a good idea, but it all comes down to the basic rule, that every commit should contain changes that belong together.
Possible situations where you will benefit from having separate merge commits:
As added benefit, you get history that's easier to understand. (You could get history that's even easier to understand if you used rebase
, but you said that's not possible.)