リモートから取得しよう(プル編)
今回はリモートから情報を取得してくるやり方(プル)について解説します。
プルを使うのは、リモートから情報を取得してマージまでも1つのコマンドでやりたい時にプルを使います。
前回解説したフェッチだと、まずリモートからローカルリポジトリに情報を取得してきて、その後ワークツリーに反映させるためにはマージをする必要がありました。
つまり、2回の手順が必要でした。
その情報を取得してワークツリーに反映させるまでを1つの手順でやりたい時にプルを使います。
では、プルのコマンドについて見ていきます。
プルは
$ git pull <リモート名> <ブランチ名>
というコマンドを使います。
たとえば
$ git pull origin main
というコマンドです。
プルというのは引っ張ってくるという意味です。
この「git pull origin main」というのは省略可能で、
$ git pull
と入力するだけでも可能です。
「git pull」と入力すると「git pull origin main」と同じ意味になります。
この「git pull」は何をしているかというと、「git fetch origin main」と「git merge origin/main」を行ったのと同じことをしています。
どういったことなのかイメージで押さえておきましょう。
「git pull」と入力すると
- リモートリポジトリからローカルリポジトリに情報を取得してきて、その情報をワークツリーに反映させる
これを一度にやってしまいます。
前回解説した「フェッチをしてマージをする」を一度にやっているのが「git pull」になります。
実際にやってみよう
では、実際に「git pull」をやってみましょう。
まずはGitHubを開いて「git_tutorial」リポジトリに移動します。
そこでGitHubの内容を更新します。
リモートリポジトリの内容を変更したら、その変更を「git pull」でローカルに取り込むという流れで確認します。
今回は「home.html」に「<p>git pull</p>」と追記をします。
追記したら「Commit directly to the master branch.」にチェックが付いていることを確認し、「Commit changes」で保存します。
これで「home.html」に「<p>git pull</p>」が追記されました。
次にターミナルを開いて「git pull」で取得してみます。
ターミナルで「git_tutorial」に移動します。
「git pull origin main」と入力します。
$ git pull origin main remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), 703 bytes | 175.00 KiB/s, done. From github.com:piketa/git_tutorial * branch main -> FETCH_HEAD bd0605c..80dc6e9 main -> origin/main Updating bd0605c..80dc6e9 Fast-forward home.html | 1 + 1 file changed, 1 insertion(+)
これでプルが成功しました。
ではワークツリーのファイルの状態を見てみましょう。
「ls」で確認します。
$ ls home.html index.html secret.txt
ファイルが3つあり、その中に「home.html」があります。
「home.html」の中身を確認します。
今回は「cat」コマンドを使って確認します。
「cat home.html」と入力します。
$ cat home.html <p>home</p> <p>git pull</p>
すると「<p>git pull</p>」が追記されていることが分かります。
このように、「git pull」をするとリモートリポジトリの内容をローカルリポジトリに反映させて、その上でワークツリーにもその変更を一度に反映できていることになります。
ワークツリーにまで一度に変更を反映させたい場合は「git pull」を使って見てください。
参考図書
独学で挫折しそうになったら、オンラインプログラミングスクール