Merge: Moves changes from a branch to another and creates a merge commit.
History is preserved.
(Feature branch context) When to Merge: Merge if target branch has no changes.
Rebase: Moves changes from a branch to another but alters the history by moving
the origin branch's starting point. It does not create a merge commit.
(Feature branch context) When to Rebase: Pull and rebase if there are changes
on target branch.
Mege | Rebase
|
1 Git merge is a command that allows|Git rebase is a command that allows
you to merge branches from Git. |developers to integrate changes from
|one branch to another
2 In Git Merge logs will be showing |Logs are linear in Git rebase as the
the complete history of the merging |commits are rebased
of commits. |
3. Git Merge is used when the target|Git Rebase should be used when the target
branch is shared branch | branch is private branch
|
|
|
If you want to see the history completely same as it happened, you should use merge. Merge preserves history whereas rebase rewrites it.
Rebasing is better to streamline a complex history, you are able to change the commit history by interactive rebase.
You can remove undesired commits, squash two or more commits into one or edit the commit message.
Rebase will present conflicts one commit at a time whereas merge will present them all at once.
It is better and much easier to handle the conflicts but you shouldn’t forget that
reverting a rebase is much more difficult than reverting a merge if there are many conflicts.
You can find details of a basic rebase process from git — Basic Rebase .
Git rebase and merge both integrate changes from one branch into another. Where they differ is how it's done. Git rebase moves a feature branch into a master. Git merge adds a new commit, preserving the history