git fetch
でリモートの変更を取得する
このステップでは、リモートの Git リポジトリから変更を取得する方法を学びます。他の人と一緒にプロジェクトを進めていて、彼らが何らかの更新を行ったと想像してみてください。git fetch
は、自分の作業を変更せずにそれらの更新を取得するために使用するコマンドです。
まず、リモートリポジトリを持っている状況をシミュレートしましょう。既存のローカルリポジトリにリモート URL を追加することでこれを行います。実際のシナリオでは、これは GitHub や GitLab のようなプラットフォームにホストされているリポジトリの URL になります。
まだプロジェクトディレクトリにいない場合は、そこに移動します。
cd ~/project/my-time-machine
次に、ダミーのリモート URL を追加しましょう。このリモートを origin
と呼びます。これは一般的な慣例です。
git remote add origin https://github.com/example/my-time-machine.git
このコマンドは何も出力しませんが、ローカルリポジトリが origin
という名前のリモートリポジトリを認識するように設定されます。
では、git fetch
を使用して、リモートリポジトリの変更に関する情報を取得しましょう。これはダミー URL なので、git fetch
は実際にはコードをダウンロードしませんが、そのプロセスをシミュレートし、何をするかを表示します。
git fetch origin
次のような出力が表示されることがあります(正確な出力は Git のバージョンと設定によって異なります)。
fatal: repository 'https://github.com/example/my-time-machine.git/' not found
「リポジトリが見つかりません」というエラーは心配しないでください。これはダミー URL を使用したために予想される結果です。重要なのは、git fetch
コマンドを実行したことです。
実際のシナリオでは、git fetch origin
はリモートリポジトリに接続し、ローカルリポジトリに存在しないすべての新しいコミットとブランチをダウンロードし、特別な領域に保存します。これらの変更は現在の作業ブランチにマージされません。これにより、他の人が行った変更を自分の作業に統合する前に確認することができます。
git fetch
を郵便局に行って郵便物を受け取ることに例えてみてください。あなたは郵便物(変更)を受け取りますが、準備ができるまでそれを開いて机の上に置く(自分の作業にマージする)ことはしません。