gitでリモートの変更を取り込む場合、大きく分けるとfetchとpullがあります。
両者の違いですが、
fetch=一度、変更を取り込んで、ローカルの変更と相違点を確認できます。確認後mergeを行うとローカルに変更を取り込むことができます。
pull=一気にローカルの変更を行います。
よく言われているのはpull = fetch + merge origin masterですね。
fetch とpullの違いについて
git fetchの理解からgit mergeとpullの役割
実際の取込ですが、下記のように行うとスムーズです。
1 取込
git fetch origin master
2 fetchになっているコミットをみる
fetchしたコミットの情報がみれます。
git log HEAD..FETCH_HEAD
3 差分の確認
ローカルのソースとfetchの差分です。
git diff HEAD..FETCH_HEAD
4 最終的にマージ
git merge FETCH_HEAD
ここでソースが以前のコミットから変更がある場合は、mergeできません。
この場合、git checkout リビジョン番号 ファイル名などで所定のリビジョンに戻すか一度コミットする必要があります。
gitもまだまだ分かっていないこと多いなー。