There’s a lot of confusion between git merge and git rebase even among seasoned users of git. “An Introduction to Git Merge and Git Rebase: What They Do and When to Use Them” is a great article explaining the pros and cons of each, and when and why using each of this is better.
While I understand it a lot better now, I still much prefer the merge approach. It’s simpler and less dangerous, and maintains the full history. This might get noisy at times, but works as a last resort when trying to understand what was going through the developer’s head when he was working on a piece of code.