Support pull == fetch & merge
Create temp branch if non-existent

Also save merge state so the next commit has
both commits as parents.