Rozdíl mezi fetch a pull je, že:
git fetch - stáhne branche, tagy, commity (v závislosti na parametrech) z remote repozitáře
git pull - provede git fetch následovaný git merge na aktuální větev (dle parametrů normální, fast-forward nebo rebase)
imho to pomůže s pochopením rozdílu.