Yup, I was being lazy and working on 2 changesets on the master branch and it bit me badly so here's a little reminder to always create a separate branch for each changeset to avoid unnecessary dependencies and generally wanting to solve the problem with an axe.
Create a new branch from master for the first changeset:
git checkout -b new_feature_A
Create a new branch from master for the second changeset:
NB: If you create the second branch while on the first branch you create a dependency between the 2 branches :( switch back to master before creating the second branch.
git checkout origin/master
git checkout -b new_feature_B
If you want to create a branch from another branch use:
git checkout -b new_feature_A other_feature
Move between branches using:
# stash away changes first
git stash
git checkout new_feature_B
# do stuff on B
git checkout new_feature_A
# pop saved changes from stash
git stash pop

Show current branch:
git branch
* new_feature_A
Push changes back to master branch:
git checkout master
git pull
git merge new_feature_A
# now push to origin if required
Delete branch if no longer needed (changes must be merged into master, use -D to force)
git branch -d branch_name
Information gleaned from http://genomewiki.ucsc.edu/index.php/Working_with_branches_in_Git and painful experience.