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の恩恵を受けます。

試してみる — Git Command Reference & Cheat Sheet

フルツールを開く