The main difference between git fetch and git pull is:
- If you do a git fetch it will just fetch all the changes in the remote repository (Github) and move the origin/master pointer to HEAD. Meanwhile your local branch master will keep pointing to where it has.
- If you do a git pull, it will do basically fetch (as explained previously) and merge any new changes to your master branch and move the pointer to HEAD.
So, git pull=git fetch + merge.