Git

Commands

http://www.ndpsoftware.com/git-cheatsheet.html#loc=workspace;

Git pull request from select changesets

  git remote add upstream <git repository you want to contribute to> 
  git remote update
  git checkout -b upstream upstream/master
  git cherry-pick <SHA1 hash of bugfix commit>
  git cherry-pick <SHA1 hash of another commit to add>
  git push origin upstream

and then I see my upstream branch on github, switch to it and can submit the pull request with just the changes I want.

Sync fork with upstream

https://help.github.com/articles/syncing-a-fork