Git Rebase vs Git Merge
In Git there are two ways to integrate changes between two branches. Git Rebase and Git Merge are those two ways.
What is Git Rebase?
When we use git rebase, it re-writes the changes of one branch onto another branch without creating a new commit. But Rebasing is not recommended if the feature branch that you’re obtaining updates from is shared with your other team members in your development team, as the rebasing procedure will result in inconsistent repositories. Rebasing makes a lot of sense for people.
Rebasing is a superior way to simplify a complicated history since it allows you to update the commit history interactively. Unwanted commits may be removed, two or more commits can be merged into one, and the commit statement can be edited. Rebase will show you conflicts one commit at a time, whereas merge will show you all of them at once. It is better and much easier to resolve conflicts, but keep in mind that undoing a rebase is considerably more difficult than reverting a merge if there are several conflicts.
What is Git Merge?
When you run git merge, your HEAD branch will generate a new commit, preserving the ancestry of each commit history. Git merge works well when you never change git history in feature branches. It’s simpler to cooperate on branches when you don’t require a golden rule telling you what you shouldn’t do. You’ll never need to do the force push upstream, for example, because you’ll never overwrite someone else’s changes.
This is critical if one of the team mate of your development team make any changes to your feature branch without consulting you beforehand. Whether or if this is beneficial is entirely dependent on how you interact. You can review just the changes that have occurred since the initial review and subsequent changes. That is not feasible in a process that rewrites commits. An advantage of merging is, the commits on the source branch are separated from other branch commits. This can be useful if you want to take the feature and merge it into another branch later.
Which one is better?
When your development team uses a feature based workflow or is not familiar with rebase, then git merge is the right choice for you.
On the other side, git rebase may be the best option if you like a clean, linear history. You’ll save time by avoiding redundant commits and keeping changes more centralised and linear.