git pull
リモートリポジトリの変更を取得し、現在のブランチにマージします。git fetch + git merge を一度に行います。
構文
git pull [<remote>] [<branch>] git pull は git fetch(リモートの変更を取得)と git merge(ローカルに統合)を連続して実行するショートカットです。チーム開発では、作業を始める前に git pull で最新の状態に更新することが重要です。
基本的な使い方
# 現在のブランチのリモート追跡ブランチから取得してマージ
git pull
# リモートとブランチを明示的に指定
git pull origin main
git pull —rebase
git pull --rebase
--rebase を使うと、マージコミットの代わりに rebase で変更を取り込みます。
通常の git pull:
ローカル: A → B → C
リモート: A → B → D
結果: A → B → C → M (マージコミット)
↗
D
git pull --rebase:
結果: A → B → D → C (C が D の後に再適用)
個人のブランチでは --rebase を使うと履歴がきれいになります。
git fetch との違い
| コマンド | 動作 |
|---|---|
git fetch | リモートの変更を取得するだけ(作業ツリーは変更しない) |
git pull | 取得してそのままマージ(作業ツリーが変わる) |
確認してからマージしたい場合は git fetch を使います。
git fetch origin
git log origin/main..HEAD # リモートと自分の差分を確認
git merge origin/main # 確認後にマージ
コンフリクトが起きたら
# コンフリクトしているファイルを確認
git status
# ファイルを編集してコンフリクトを解決
# ...
# 解決したファイルをステージング
git add <file>
git commit
rebase 中のコンフリクトは git rebase --abort でキャンセルできます。