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.