読者です 読者をやめる 読者になる 読者になる

彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Git で新しいリモートブランチをローカルに持ってくるときに git pull してはいけない理由

例えば共同で開発している人が新しいブランチ「new-branch」をつくって、リモートリポジトリに プッシュしました。

その新しいブランチを自分のローカルに持ってくるときに

$ git pull origin new-branch:new-branch

とするのは、危険です。大抵の場合、意図していない結果を生みます、という話。

git pull は現在のブランチにマージされる

なぜ危険かというと、例えば上の例では、new-branch の内容が、現在いるローカルブランチにマージされるからです。master ブランチにいたとすると、master ブランチにマージされます。こわいですね。

大抵の場合は、ただ単に新しいリモートブランチを自分のローカルに持ってきたいだけで、他の既存のブランチにマージすることまでは意図していないはず(ですよね?)

正しいコマンド

単に新しいリモートブランチを自分のローカルに持ってくるのであれば、下記のようにするのが正しいです。

$ 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 の詳細な挙動については、下記でまとめられていますので、興味がある方は参考にしてみてください。

ではでは。