The merge option
The easiest option is to merge the master
branch into the feature
branch using
something like the following:
git checkout feature
git merge master
Or, you can condense this to a one-liner:
git merge master feature
This creates a new "merge commit" in the feature
branch that ties together the
histories of both branches, giving you a branch structure that looks like this:
Merging is nice because it's a non-destructive operation. The existing branches are not changed in any way. This avoids all of the potential pitfalls of rebasing (discussed below).
On the other hand, this also means that the feature
branch will have an extraneous
merge commit every time you need to incorporate upstream changes. If master
is
very active, this can pollute your feature
branch's history quite a bit. While
it's possible to mitigate this issue with advanced git log
options, it can make it
hard for other developers to understand the history of the project.