use git fetch and reset instead of pull, which can fail with changed history