プルとは
この記事の結論
- プルとは、共有先(リモートリポジトリ)の最新の変更を取ってきて、いま作業しているブランチに取り込む操作です。コマンドは
git pullです。 - Git公式マニュアルによると、git pull はまず git fetch で変更を取ってきて、そのあと手元のブランチに統合します。「取ってくるだけ」がフェッチ、「取ってきて取り込む」がプルです。
- 手元と共有先の両方に別のコミットがあると、プルは止まることがあります。そのときはマージで合流させるか、リベースで積み直すかを選びます。
ぷる/Pull(git pull)
共有先のリポジトリから最新の変更を取ってきて、手元のブランチに取り込む操作のことです。
最終更新: 2026-10-23
プルとは何か(意味と読み方)
プルとは、共有先のリポジトリにある新しいコミットを手元に取り込む操作です。読み方は「ぷる」、英語の pull(引っぱる)から来ています。チームで同じリポジトリを使っていると、自分が作業しているあいだに他の人の変更が共有先に増えていきます。プルは、その差を手元に追いつかせるための操作です。
git-pull の公式マニュアル(git-scm.com)は、git pull の動きを「まず同じ引数で git fetch を実行してリモートのブランチを取ってくる。次に、どのブランチを統合するかを決め(引数なしなら現在のブランチの上流)、それを現在のブランチへ統合する」と説明しています。
プル・フェッチ・プッシュの違い
| 操作 | 向き | 手元のファイルは変わるか |
|---|---|---|
| フェッチ(git fetch) | 共有先 → 手元 | 変わらない。取ってきた変更は origin/main などの「リモート追跡ブランチ」に入るだけ |
| プル(git pull) | 共有先 → 手元 | 変わる。取ってきた変更を作業中のブランチに統合する |
| プッシュ(git push) | 手元 → 共有先 | 変わらない。手元のコミットを共有先に送る |
先に中身を見てから取り込みたいときは、git fetch のあと git log main..origin/main で増えたコミットを確かめ、納得してから取り込みます。送る側の操作はプッシュで解説しています。
プルの基本の手順
| 順番 | やること | コマンドの例 |
|---|---|---|
| 1 | 作業中の変更が残っていないか確かめる | git status |
| 2 | 未完成の変更があればコミットしておく | git commit -m "作業途中" |
| 3 | 共有先から取り込む | git pull |
| 4 | 取り込んだ結果を確かめる | git log --oneline -5 |
作業ツリーに未コミットの変更があると、取り込む変更と同じファイルにぶつかった場合にプルが止まります。先にコミットしておくと、何が自分の変更で何が取り込んだ変更か、履歴で区別できます。
「分岐している」と止まったとき
手元にも共有先にも、相手が持っていないコミットがある状態を「分岐(diverged)」と呼びます。公式マニュアルは統合の方法として4つを挙げており、最新版では git pull --ff-only(早送りできるときだけ取り込み、分岐していれば失敗する)が既定と書かれています。分岐していたら、次のどちらかを明示して選びます。
| 方法 | コマンド | 履歴の形 |
|---|---|---|
| マージで合流させる | git pull --no-rebase | 2本の流れを合流させるコミットが1つ増える |
| リベースで積み直す | git pull --rebase | 自分のコミットを共有先の最新のうしろに並べ直し、一直線になる |
どちらでも、同じ行を両方が書き換えていればコンフリクトが起きます。直し方はマージのページにまとめています。チームで方式が決まっているなら、それに合わせます。
AIに作業させるときの注意
- 作業の前にプルする:AIに長い作業を頼む前に最新を取り込んでおくと、あとで大きなコンフリクトになりにくくなります。
- プルの結果を読ませる:止まったときは、エラー文をそのまま貼ってAIに状況を説明させると、分岐なのか未コミットの変更なのかを切り分けやすくなります。
- 強制的な上書きはさせない:
git reset --hardなどで手元の変更を消して合わせる操作は、元に戻せません。実行前に必ず人が確認します。
関連記事
よくある質問
Q1. プルとは何ですか?
共有先のリポジトリから最新の変更を取ってきて、いま作業しているブランチに取り込む操作です。コマンドは git pull で、内部ではフェッチと統合(マージまたはリベース)を続けて行います。
Q2. プルとフェッチは何が違いますか?
フェッチは取ってくるだけで、作業中のファイルは変わりません。プルは取ってきたうえで作業中のブランチに統合するので、ファイルの中身が変わります。中身を確かめてから取り込みたいときはフェッチを使います。
Q3. プルが「分岐している」と止まるのはなぜですか?
手元と共有先の両方に、相手の持っていないコミットがあるためです。git pull --no-rebase でマージするか、git pull --rebase で自分のコミットを積み直すかを選んでやり直します。
Q4. プルする前に何をすればいいですか?
git status で未コミットの変更がないか確かめ、あればコミットしておきます。未コミットの変更があると、取り込む変更とぶつかったときにプルが止まります。