Rebasing works best if the two branches diverged fairly recently. If the remote's branch has a long and complex history, it diverged from you a while back, and you only want two or three commits from it, it's a clear win for cherry-picking. But if it's based on your current development branch and you want most of it, but just to tweak a few things, rebase -i will probably be more efficient.
Also, I printed this chart out and have it on my bulletin board at work. It really is quite useful.
[1] You can also rebase onto something else, like (for instance) the last commit you pushed. Then you'll have to merge the pulled branch into your dev branch, or rebase your dev branch onto the pulled branch, to make sure you get all the changes from both branches. Just know that rebasing rewrites history, so don't rebase anything that has already been pushed. Git is very powerful, but complicated
]]>git cherry-pick <commit>
Where <commit> is the commit id you want to cherry pick.
]]>Thanks!
Step 1: From your project repository, check out a new branch and test the changes.
git checkout -b jamiesonbecker-master master
git pull git://github.com/jamiesonbecker/pulseaudio-ctl.git master
Step 2: Merge the changes and update on GitHub.
git checkout master
git merge --no-ff jamiesonbecker-master
git push origin master