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.
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.