Here's a common workflow hurdle I encounter often:
master is our "stable" branch
$ git status
# On branch master
nothing to commit (working directory clean)
create a module on a branch
$ git checkout -b foo
$ echo "hello" > world
$ git add .
$ git commit -m "init commit for foo module"
$ git checkout master
$ git merge foo
do work on master or other branches
Over the next couple weeks, more code will be committed to master directly and by other branches. foo branch will go untouched for this time period
resume work/make updates on foo branch
$ git checkout foo
Oh no! foo is massively out of date! I understand why, but I do need foo back in sync.
the question
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