Git Fetch vs Pull:違いの理解
git fetchとgit pullの違いを理解します。各コマンドをいつ使用するか、rebaseまたはmergeワークフロー用のpull動作の設定方法を学びます。
Remote
詳細な説明
Git Fetch vs Git Pull
両方のコマンドはリモートからデータをダウンロードしますが、統合の処理が異なります。
git fetch
git fetchはリモートからコミット、ブランチ、タグをダウンロードしますが、作業ディレクトリや現在のブランチを変更しません。
# デフォルトリモートからfetch
git fetch origin
# すべてのリモートからfetch
git fetch --all
git pull
git pullは基本的にgit fetch + git merge(--rebaseを付けるとgit rebase)です。
# Fetch + merge(デフォルト)
git pull
# Fetch + rebase
git pull --rebase
デフォルトPull動作の設定
# pullで常にrebase(多くのチームに推奨)
git config --global pull.rebase true
# fast-forwardのpullのみ許可
git config --global pull.ff only
ユースケース
fetch vs pullの理解はリモートリポジトリとの作業の基本です。リベースワークフローを好むチームは通常、デフォルトでrebaseするようpullを設定します。長寿命のフィーチャーブランチで作業する開発者は、上流の変更を慎重に統合するためにfetch + 手動mergeの恩恵を受けます。