ローカルにはまだないブランチをリモートから持ってきたい、という状況を考えます。
たとえば、誰かと共同で追加機能の開発をしていて、そのパートナーが作成したブランチをリモートを介して共有したい、というようなことです。
あるいは、一人で開発していても、複数の端末を用いている場合には同様の状態になります。
ローカルにないブランチをリモートから持ってくるときには git pull では駄目なようです。というのも、 git pull は git fetch からの git merge FETCH_HEAD と同じなので、引っ張ってきた新しいブランチの内容が自分が現在いるブランチにマージされてしまいます。そうではなく、ローカルに同名・同内容のブランチを作りたいわけです。
これを実現するには、fetchコマンドで、マージせずに情報を引っ張って、checkoutします(Thanks: @tomohisaota さん)
git fetch
git checkout newbranch
参考:Pulling code from remote git branch, when it does not exist locally