フェッチとプルを使い分けよう
今回はフェッチとプルの使い分けについて解説します。
リモートリポジトリから情報を取得するやり方についてはフェッチとプルの2つのやり方がありました。
この2つはどのように使い分けをすれば良いのでしょうか。
基本的にフェッチを使うのをオススメめします。
それはプルはフェッチとマージを一度に行ってしまうので楽ではありますが挙動が非常に特殊なのでその点注意が必要だからです。
プルは何が特殊なのでしょうか。
何に注意をしなくてはいけないのでしょうか。
基本的にはプルとはフェッチした後にマージするだけと思うかもしれません。
基本的にはそうなのですが、一部の動きが非常に特殊です。
例えば、いまの状況としてワークツリーにメインブランチとhogeブランチがあったとします。
自分自身はメインを使用しています。
その状況で「git pull origin hoge」というコマンドを実行したとします。
するとローカルリポジトリの「remotes/origin/hoge」にリモートリポジトリのhogeの内容が取得されます。
その後にワークツリーの方にhogeの内容を反映させるのですが、ここが注意点です。
「git pull origin hoge」のイメージでいくと、hogeブランチへ情報がマージされるイメージが湧くのですが、そうではなく、メインブランチにhogeブランチがマージされます。
「git pull」すると今自分がいるブランチにプルしてきたブランチの内容がマージされます。
これが気をつけなくてはいけないポイントで、hogeブランチの情報を取ってきたいと思って「git pull」すると(hogeブランチにいれば問題無いですが)別のブランチにいた場合には、その情報をマージするつもりは無かったにもかかわらずマージされてしまいます。
ですので、「git pull」に関しては、ちゃんと理解した上で使うのであればオススメですが、ちゃんと理解するまでは「git fetch」して「git merge」するステップを踏んだ方が安全だと考えます。
参考図書
独学で挫折しそうになったら、オンラインプログラミングスクール