In the simplest terms,

git pull = git fetch && git merge FETCH_HEAD

You can use git fetch at any time to update your remote-tracking branches under refs/remotes/<remote>/. This command never changes any of your local branches under refs/heads, and is safe to do without changing your working copy.

A git pull is used to bring a local branch fully up-to-date with its remote version, while additionally updating your other remote-tracking branches.