git fetchgit pullの違いをわかりやすく書いてあるのが見つからなかったので。

git fetch

リモートからデータを取ってくる。
ただし取ってくるだけで、それ以外は何もしない。

例えば

A->B # master
A->B->C->D # origin/master

だった場合,git fetchはCとDをダウンロードしてきて、origin/masterとして保存する。
しかしローカルのmasterには一切手を触れないため、masterとorigin/masterは別のコミットを指す。

この状態でgit checkout masterとかすると、多分こんな感じのメッセージが出る

Switched to branch 'master'
Your branch is behind 'origin/master' by 2 commit, and can be fast-forwarded.

これは、このあと2回コミットされてるけど早送り(衝突が無いのでそのまま最新版に)できるよ!
ってことらしく,git merge origin/masterを実行することで、ローカルのmasterもorigin/masterを指す。

git pull

git pullは、上のgit fetchgit merge origin/masterまでを
全部まとめてやってくれる。
らくちん。

ただし、mergeしたくない時にやってしまうと大変なことになる。
そんな時は、戻したいコミットのIDを調べて、git reset --hard IDで元に戻せる。

Ref:https://qiita.com/ota42y/items/e082d64f3f8b424e9b7d