【GitHub】リモートリポジトリからデータを取得する【fetchを使った方法を解説】
こんにちは、ちくたっく(@tictak_py)です。
今回は、gitコマンド「fetch」を使ってリモートリポジトリのデータを取得する方法を紹介していきます。
こんな方に読んで欲しい記事です
- リモートリポジトリから「fetch」コマンドでデータを取得したい方
- GitHubで使われている基本的なコマンドを学んでいきたい方
まず最初にに全体イメージをお伝えしておくと、リモートリポジトリ(GitHub)からデータを取得する方法は主に2つあります。1つが今回紹介する「fetch」コマンド、もう1つが「pull」コマンドです。
両者の違いをざっくり説明すると、最終的にリモートリポジトリのデータをローカルに反映させる点では共通していますが、「fetch」コマンドでは2段階のプロセス(git fetch→git merge)が必要であるのに対して、「pull」コマンドでは1段階のプロセス(git pull)で済む点が主な相違点です。
今回は、GitHub上で新規ファイルを作成し、そのデータを「fetch」コマンドを使って取り込む方法を紹介していきます。
【GitHub】「fetch」コマンドでデータを取得する
【事前準備】GitHubに新規ファイルを作成
まずは、現状の僕の環境を確認しておきます。
(以前のgit関連記事の名残があるので以下のようになっています。)
本来であれば、自分以外の誰かがファイルをGitHubに上げて、それを自分のローカルに取り込んでいきますが、今回は便宜上「GitHubにファイルを新規作成」することで同じ状況を作り出していきます。
以下のようにGitHub上から新規ファイルを作成することが可能です。
ファイル名と記載内容は何でもいいですが、今回は「new-fetch」というhtmlファイルを作成し、h1タグとpタグを使って以下のような内容を記載しておきます。
画面を下にスクロールさせて、「Commit new file」をクリックします。
リポジトリのホーム画面に戻ると、以下赤枠のように新規ファイルが作成されていることがわかります。
これで、GitHubに最新のファイルが追加され、自分のローカル(ワークツリー)には反映されていない状況が出来上がりました。今から「new-fetch.html」ファイルをローカルに反映していくことが目的です。
【ステップ①】「git fetch」コマンド|ローカルリポジトリへ反映
混乱しないように先にポイントだけまとめておきます。
- 「fetch」コマンドを使うと、「ローカルリポジトリ」にデータが反映される
- 「fetch」コマンドを使っても、ワークツリーにはデータが反映されていない(pullと大きく異なる点)
- 「ローカルリポジトリ」から「ワークツリー」にデータを反映するには「merge」コマンドが必要
これを踏まえた上で、「git fetch」コマンドを使っていきます。
具体的には「git fetch <リモート名>」でリモートリポジトリのデータを取得することが可能です。
以下では「リモート名の確認」と「masterブランチにいることの確認」をした上でコマンド入力しています。
「リモートリポジトリのデータが取得出来たから、ワークツリーを確認してみよう」と思っても、ワークツリーには反映されていないことが以下コマンドからわかります(ここが留意点です)。
「git fetchコマンドで取得したデータはどこに保存されているのか」と言うと、「リモートブランチ」という場所に保存されています(以下赤枠で囲まれた部分)。
本当にリモートブランチにGitHubから取得した「new-fetch.html」が存在するのかを確かめてみます。「git checkout」コマンドでブランチを切り替えて、「ls」コマンドで確認した結果が以下です。
確かに「new-fetch.html」が存在していることがわかりますね。
この後、「git merge」コマンドを使って、ワークツリーにデータを反映させていきます。
「途中に出てきたgit branchやgit checkoutのコマンドがわからない」という方は、以下記事を参考にしてみてください。
【GitHub】新しいブランチを作成する「branch」コマンドの紹介
こんにちは、TAKです。今回は、GitHub上でチーム開発する方には必須の機能「ブランチ」について紹介していきます。 ブランチ(branch)は「枝」のことを意味しますが、このブランチ機能を用いることで「複数の機能を並行して開発出来る」ため…
【GitHub】ブランチの切替・変更・削除をするコマンドを紹介
こんにちは、TAKです。今回は、git上でブランチを操作する方法(切替・変更・削除)について紹介していきたいと思います。 前回、「ブランチの作成」について以下の記事を書いたので、その続きとしてブランチ関連で知っておいた方がいいコマンドを具体…
【ステップ②】「git merge」コマンド|ワークツリーに反映
次に「git merge」コマンドを使って「new-fetch.html」ファイルをワークツリーに反映させます。具体的には「git merge <リモート名> <ブランチ名>」でデータをマージ(統合)することが可能です。
コマンドを入力する前に、「git checkout」で「master」ブランチに戻るようにしてください。
「merge」コマンドについて少し補足すると、先ほど確認したリモートブランチは「remotes/origin/master」となっていましたが、「remotes」部分は省略して「origin/master」とすることが一般的なので、上記でもそのようにしています。
「merge」コマンドを入力した後、「ls」コマンドでワークツリーを確認すると「new-fetch.html」が存在していることがわかります。また、「cat」コマンドでファイルの内容を確認してみると、GitHub上で設定したファイルと同じことも確認出来ます。
以上が、「fetch」コマンドと「merge」コマンドの簡単な使い方となります。
さいごに
今回は、リモートリポジトリのデータを取得する方法「fetch」コマンドについて紹介しました。
「fetch」コマンドを使う場合は、「merge」コマンドとセットで理解した方がいいと思うので、合わせて「merge」コマンドについて使えるようにしてみてください。
リモートリポジトリのデータを取得するもう一つの方法「pull」コマンドについても紹介しているので、こちらも良ければ参考にしてみてください。
【GitHub】リモートリポジトリからデータを取得する【pull編】
こんにちは、TAKです。今回は、gitコマンド「pull」を用いてリモートリポジトリのデータを取得する方法を紹介していきます。 前回「fetch」コマンドを用いてリモートリポジトリのデータを取得する方法を紹介したので、今回はもう一つの方法「…
では今回はこのへんで。