前回の記事では git push を解説しました。
git push は
ローカル → GitHub
へコードを送る操作でした。
しかしチーム開発では次のような状況がよく起きます。
他の開発者がGitHubに変更をpushした
この変更を自分のローカル環境に取り込む必要があります。
そのためのコマンドが
git pull
です。
この記事では次の内容を解説します。
- git pullとは
- pullの仕組み
- git fetchとの違い
- pullの基本コマンド
- pull時のエラー
git pullとは
git pull は
リモートリポジトリの変更を取得してローカルに反映する
コマンドです。
つまり
GitHub
↓
ローカル
に変更を取り込む操作です。
前回の git push と合わせると
push → ローカル → GitHub
pull → GitHub → ローカル
という関係になります。
git pullの基本コマンド
基本コマンド
git pull origin main
意味
origin の main ブランチを取得
です。
つまり
GitHub(main)
↓
ローカル(main)
に変更を反映します。
git pullの仕組み
実は git pull は次の2つの操作を同時に行っています。
git fetch
git merge
つまり
fetch → 変更取得
merge → ローカルに統合
です。
git fetchとは
git fetch は
リモートの変更を取得する
だけのコマンドです。
ローカルのコードは変更されません。
例
git fetch
このコマンドで
GitHubの変更
を取得できます。
git pullとの違い
| コマンド | 動作 |
|---|---|
| git fetch | 変更取得のみ |
| git pull | 取得 + merge |
つまり
git pull = fetch + merge
です。
git pullの例
チーム開発の例です。
開発者A
git push origin main
開発者B
git pull origin main
これにより
Aの変更
がBの環境に反映されます。
featureブランチでのpull
通常の開発では
main
ではなく
featureブランチ
を使います。
例
git pull origin feature-login
pullの注意点
pullする前に
ローカル変更
がある場合
エラーになることがあります。
例
Your local changes would be overwritten
この場合
commit
するか
stash
する必要があります。
git stash
git stash は
変更を一時保存
するコマンドです。
例
git stash
その後
git pull
ができます。
pullで起こる問題
git pull をすると
merge conflict
が起こることがあります。
これは
同じファイルの同じ部分
を別の人が変更した場合です。
次回の記事では
git merge
と
コンフリクト
を解説します。
pullを使うタイミング
実務では次のタイミングでpullします。
作業開始前
理由
最新コードを取得
するためです。
一般的な開発フロー
チーム開発の基本フロー
git pull
↓
作業
↓
git add
↓
git commit
↓
git push
つまり
pull → 開発 → push
です。
まとめ
この記事では git pull を解説しました。
重要なポイント
git pull = リモート変更取得
git fetch + merge
基本コマンド
git pull origin main
チーム開発では
作業前にpull
する習慣が重要です。
次の記事
次回は
git merge
を解説します。
ここでは
- mergeとは
- ブランチ統合
- コンフリクト
など、Gitの重要な概念を説明します。


コメント