この記事を書いたきっかけ
Gitの勉強をしているときに、git fecthというコマンドを初めて知りました。一人でWebアプリケーションを作成する時には使用したことがなかったので、このコマンドが何をするものなのかよく知りませんでした。
git fetchを必要な場面で使えるようにするために、記事にしました。
git fetchとは
git fetchとは何か
git fetch
とは、Gitのコマンドの一つです。
git fetch
コマンドを使うことで、リモートリポジトリの最新情報をローカルに取得することができます。取得した情報はローカルリポジトリのリモート追跡ブランチに格納されるので、現在作業しているローカルブランチの状態を変更することはありません。
fetchは英語で、ある場所から<物や人>を取ってくる(呼んでくる)という意味があります。bringみたいな意味を持ちます。
git fetch の役割
git fetch
はリモートリポジトリの全ての最新のコミットやブランチ情報を取得します。フェッチした情報はローカルのリモート追跡ブランチ(例:origin/master)に格納されますが、チェックアウトしている現在のローカルブランチには影響を与えません。作業中のブランチには影響を与えたくないときに、安心して実行できます。
git fetchを使用するシナリオ
- 他の開発者がリモートリポジトリに変更をプッシュした場合、その変更をローカルで確認する必要がある時。
- リモートに新しいブランチが作成された時に、そのブランチ情報をローカルで取得したい時。
- リモートリポジトリとローカルリポジトリの状態を同期させ、最新の情報を基に作業を進めたい時。
git fetch の使用方法
基本コマンド
git fetch <リモート名>
例えば、リモート名がoriginの場合
git fetch origin
これにより、リモートoriginの最新の状態を取得します。
フェッチ後、ローカルブランチをリモートの最新状態に更新するには、
git merge
や git pull
コマンドを使用します。
git fetchしたファイルを統合(マージ)したいとき
masterに切り替える
git checkout master
統合(マージ)する
git merge origin/master
git pull コマンドを使用してフェッチとマージを一度に行うとき
git pull origin master
git fetch と git pull の違い
git fetch
は、リモートの最新情報を取得しますが、ローカルブランチの状態は変更しません。
git pull
は、git fetch
とgit merge
を組み合わせたコマンドであり、リモートの最新情報を取得し、ローカルブランチにマージするところまでを実行します。
マージとは、枝分かれしたブランチの変更をmasterブランチに統合する操作です。
まとめ
リモートリポジトリの情報をちょっとローカルで見てみたい!でも、ローカルには何も影響を与えたくない!というときにはgit fetch
を使うとよい。