Gitコマンドの一つ、git pull はリモートリポジトリの内容をローカルリポジトリに取り込む git fetch と、その内容を master ブランチに反映させる git merge をまとめて行うコマンドです。フェッチとマージを一気に行いたい場合に使われます。
目次
git pull とは
Git でリモートリポジトリの内容をローカルリポジトリに取り込む流れは下記のようになります。
リモートリポジトリ
↓ git fetch
ローカルリポジトリ(origin/master)
↓ git merge
ローカルの作業ディレクトリ(master)
これらの流れを1つのコマンドでまとめて実行するのが git pull です。
git pull の使い方
実際に git pull コマンドを使ってみましょう。
今回はあらかじめリモートリポジトリの内容を書き換えておきました。
git pull origin master
git pullのあとのorigin masterは origin というリモートリポジトリの master というブランチからプルするという意味です。
これでリモートリポジトリの内容をローカルリポジトリに同期させることができました。
git pull を実行する場合の注意点
git pull は git fetch と git merge をまとめて行うコマンドです。そのため同じファイルの同じ個所を複数の開発者が修正した状態で実行すると git merge 同様、衝突(コンフリクト)を引き起こす場合があります。
その場合の表示と対処方法については下記の記事をご参照ください。
git merge コマンドで複数のブランチをマージする方法
git pull で使用可能なオプション
git pull コマンドにつけられるオプションには下記のようなものがあります。
マージせず、リベースする
git pull --rebase
git pull コマンドは通常 git fetch実行後マージを行いますが、このオプションを付けることでリベースすることができます。
早送り(fast-forward)せず、必ずマージコミットを作成する
git pull --no-ff origin master
早送り(fast-forward)可能であっても、必ずマージコミットが新しく作成されます。