Git で新しいリモートブランチをローカルに持ってくるときに git pull してはいけない理由
例えば共同で開発している人が新しいブランチ「new-branch」をつくって、リモートリポジトリに プッシュしました。
その新しいブランチを自分のローカルに持ってくるときに
|git| $ git pull origin new-branch:new-branch ||<
とするのは、危険です。大抵の場合、意図していない結果を生みます、という話。
*git pull は現在のブランチにマージされる
なぜ危険かというと、例えば上の例では、new-branch の内容が、現在いるローカルブランチにマージされるからです。master ブランチにいたとすると、master ブランチにマージされます。こわいですね。
大抵の場合は、ただ単に新しいリモートブランチを自分のローカルに持ってきたいだけで、他の既存のブランチにマージすることまでは意図していないはず(ですよね?)
*正しいコマンド
単に新しいリモートブランチを自分のローカルに持ってくるのであれば、下記のようにするのが正しいです。
|git| $ git branch new-branch origin/new-branch ||<
「git branch」コマンドに第2引数を与えると、それを起点にしたブランチがつくられます。
**(2012年8月31日 追記)
下記のようにすると、新しいブランチを作成し、さらに作成したブランチにチェックアウトできます。
|| $ git checkout -b new-branch origin/new-branch ||< <<
*git pull の詳細な挙動
git pull の詳細な挙動については、下記でまとめられていますので、興味がある方は参考にしてみてください。
-git pullの詳細な挙動を追ってみる - hokaccha.hamalog v2
ではでは。