Here's a common workflow hurdle I encounter often:
$ git status
# On branch master
nothing to commit (working directory clean)
$ git checkout -b foo
$ echo "hello" > world
$ git add .
$ git commit -m "init commit for foo module"
$ git checkout master
$ git merge foo
Over the next couple weeks, more code will be committed to master directly and by other branches. The foo
branch will go untouched for this time period.
$ git checkout foo
Oh no! foo is massively out of date! I understand why, but I do need foo back in sync.
How do I get the latest contents from the master branch?
If you don't need the branch around:
If you've merged foo back to master, "git branch -d foo" to kill the topic branch, and then "checkout -b foo" in the future when you need to hack on it again.
If you do need the branch around:
You can rebase your topic branch against the master branch:
git checkout foo
git rebase master
Or:
git rebase master foo