correctly handle failing git fetch

If the repository doesn't have an upstream branch configured, git fetch will
output an error; handle this separately to prevent it interfering with the git
diff call which checks to see if we have any pending changes.