Coding tips
Git Merge vs Rebase vs Squash: Differences, History and When to Use Each (Tested Examples)
Merge keeps every commit and adds a merge commit, rebase replays your commits on top for a straight line, and squash turns the whole branch into one commit. Here is what each does to a real repo, with the graphs, conflicts and undo steps I tested.