• git merge is a default behavior when you use git pull. Use it as default if you are not bothering about commit history and want to avoid problems • use git rebase to make your commit history more clear and consistent (use it only before pushing to remote servers to keep your name and karma clean) • use git rebase for temporary local branches — they are not necessary for public commit history and won’t make problems • use git rebase -i (interactive) for rewriting your local commit history into pretty one before pushing it on the remote server.
• The rebase just overwrites the history of the commits • the marge git merge doesn’t rewrite commit history, just adds one new commit