git merge vs rebase
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.