Demonstrate the difference between merge and rebase: (1) Create feature branch from main, (2) Make commits on both main and feature, (3) git merge main into feature → merge commit, (4) Reset and git rebase main → linear history. Show resulting git log --graph for both. Explain: when to use rebase (feature branches), when to use merge (public branches), and the golden rule of rebasing.