Difference between git pull and git fetch?

What is the difference between git pull and git fetch?

In the simplest terms, “git pull” does a “git fetch” followed by a “git merge”.

You can do a “git fetch” at any time to update your local copy of a remote branch. This operation never changes any of your own branches and is safe to do without changing your working copy. I have even heard of people running “git fetch” periodically in a cron job in the background .

A “git pull” is what you would do to bring your repository up to date with a remote repository.