Both fetch and pull are used to download data from the remote repository. Which is appropriate, depends on your need.
command for fetch in git is
$ git fetch origin
Fetch only downloads the data from the repository it does not integrate with the files you're currently working with. It only gives a view of all the things happened in the remote repository. Fetch is considered harmless as it never manipulates or spoils anything. You can fetch as many times as you want without disturbing your current working files.
Pull on the other hand downloads the data and integrates it with the current working files.
command for pull is
$ git pull origin master
So when you want to update your current HEAD branch with the latest changes from the remote you always use pull. Since git pull, merges the remote repository changes with the local ones it has a few things to be kept in mind
->Merge conflict: That is when you try to merge files where either two people make changes to the same line in the same file or when two people add files with same name unknowingly etc.
->Its recommended to start a git pull only after committing the files you currently working with or save them temporarily and have git pull with a clean working copy.