Merging is one way to keep one branch synchronise itself with changes introduced into another.
When working in parallel branches, you’ll often need to sync (short for synchronise) one branch with changes made in another. For example, while developing a feature in one branch, you might want to bring in a recent bug fix from another branch that your branch doesn’t yet have.
The simplest way to sync branches is to merge — that is, to sync a branch b1 with changes from another branch b2, you merge b2 into b1. In fact, you can merge them periodically to keep one branch up to date with the other.
gitGraph
%%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'master'}} }%%
commit id: "m1"
branch bug-fix
branch feature
commit id: "f1"
checkout master
checkout bug-fix
commit id: "b1"
checkout master
merge bug-fix
checkout feature
merge master id: "mc1"
commit id: "f2"
checkout master
commit id: "m2"
checkout feature
merge master id: "mc2"
checkout master
commit id: "m3"
checkout feature
commit id: "[feature] f3"
checkout master
commit id: "[HEAD → master] m4"
In the example above, you can see how the feature branch is merging the master branch periodically to keep itself in sync with the changes being introduced to the master branch.