Gitコマンドの一つ、git fetch はリモートリポジトリの内容をローカルリポジトリに取り込むコマンドです。リモートリポジトリを複数人で共有して作業している場合、他の開発者がプッシュした内容を自分のローカルリポジトリに取り込まなくては開発から取り残されてしまいます。
目次
git fetch とは
Git でリモートリポジトリの内容をローカルリポジトリに取り込む流れは下記のようになります。
リモートリポジトリ
↓ git fetch
ローカルリポジトリ(origin/master)
↓ git merge
ローカルの作業ディレクトリ(master)
このうちファイルの変更内容をリモートリポジトリからローカルリポジトリに結びついている origin/master というブランチに取り込むコマンドが git fetch です。
作業ディレクトリに変更内容を反映するには origin/master ブランチに取得した変更内容を master ブランチにマージ(合流、合併という意味)させる必要があります。
git merge コマンドで複数のブランチをマージする方法
git fetch の使い方
実際に git fetch コマンドを使ってみましょう。
今回はあらかじめリモートリポジトリの内容を書き換えておきました。
git fetch origin master
git fetchのあとのorigin masterは origin というリモートリポジトリの master というブランチからフェッチするという意味です。
これでリモートリポジトリの内容をローカルリポジトリにフェッチすることができました。
git fetch で使用可能なオプション
git fetch コマンドにつけられるオプションには下記のようなものがあります。
すべてのリモートから fetch する
git fetch --all
設定されているすべてのリモートからすべての履歴を取得します。
ローカルに存在しないブランチを削除する
git fetch -p git fetch --prune
リモートにのみ存在し、ローカルに存在しないブランチを削除します。
タグを fetch する
git fetch -t git fetch --tags
リモートにあるすべてのタグを取得します。