Start here. This is the direct spoken answer to practice first.
Why this question matters
Merge vs rebase is not only a command-line topic. It affects team history, release traceability, and how safely developers work with shared branches.
A merge combines branches by creating a merge commit, preserving the branch history. A rebase moves my branch commits on top of another branch, creating a cleaner linear history. I might rebase my own local feature branch before opening or updating a PR. I would avoid rebasing shared branches because rewriting shared history can disrupt other developers.