混同しやすい、git pull と git fetch の違いについてです。
git pull と git fetch の違い
git pull と git fetch の違いは、ずばり、「取得したブランチ情報をローカルブランチにマージするかどうか?」です。
git pull は、まさしく、下記のコマンドのショートハンドなのです。
// git pull origin master とほぼ同義なコマンド
$ git fetch origin master
$ git merge FETCH_HEAD
FETCH_HEAD とは、git fetch 実行時に保存される参照情報です。 git pull 実行時に使うため .git/FEACH_HEAD に書き込まれています。
2番目の、git merge FETCH_HEAD により、参照が移動します。
FETCH_HEAD に対して Fast Forward 出来ない場合、git pull はエラーで停止します。その場合は、手動でマージする必要があります。
無理やり上書きしたい場合は、こちらをご覧ください。
git pull, fetch の参考情報
git pull と fetch に関して、詳しくはこちらの記事にまとめています。
公式ドキュメントもリンクしておきます。