BTW, you should always create a local branch when working on something, even if it may eventually be committed to ‘master’. The reason is that something else may be pushed before your commit, and if you just run ‘git push’ after that, we’ll end up with a merge commit, which we’d rather avoid.
So the workflow would be: $ git branch wip-foo $ git checkout wip-foo # hack... $ git commit ... # Check whether something was pushed. $ git checkout master $ git pull # if “already up-to-date”: $ git merge wip-foo && git push # else $ git checkout wip-foo $ git rebase master # and try again # endif Also I recommend using Magit: <http://zagadka.vm.bytemark.co.uk/magit/> or <http://github.com/philjackson/magit>. Thanks, Ludo’.