fetch
is useful to pull changes from an upstream repo to merge some changes.
By default git fetch upstream
will update or create all the remote branches locally.
Say you have upstream/master
tracked by your local master
branch.
Here is how to see the changes between both:
git log master..upstream/master
This essentially means "all commits from upstream/master excluding commits from local master". For more info see gitrevisions(7).