
This interactive graphical representation is very helpful in understanging git: http://ndpsoftware.com/git-cheatsheet.html
git fetch just "downloads" the changes from the remote to your local repository. git pull downloads the changes and merges them into your current branch. "In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD."