【Git】git fetch と git pull の違いは何?
こんにちは!CODE CLUB965のKです!
今回は、git fetch と git pull の違いについて書こうと思います。
ちゃんと説明できますか?と聞かれたら意外と答えられない方も多いと思います。
答えに詰まった方は、ぜひ読んでください。
git fetch
リモートからローカルに最新のデータを持ってきます。
取得するだけで他は何もしません。
ちなみに、master ブランチでなく、origin/master ブランチに取り込まれます。
master ブランチと、origin/master ブランチの違いですが、
・「master」ブランチ ローカルの統合ブランチ。他のローカルの作業ブランチと繋がったもの。 ・「origin/master」ブランチ ローカルにある、リモートのmasterブランチを追跡するリモート追跡ブランチ。
こんなところです。
ちょっと分かりにくいかもしれませんが、git fetchではこの「origin/master」ブランチで最新情報を受け取ります。
なので、git fetchして「origin/master」を最新にしたら、git merge で「origin/master」ブランチ →「master」ブランチに最新情報をマージする必要があります。
流れをまとめると、
① git fetch ローカルの「origin/master」ブランチを最新にする ② git merge ローカルの「origin/master」ブランチ から ローカルの「master」ブランチに最新情報をマージする
この流れになります。
git pull
git pullは、上で説明した「git fetch」と「git merge」を同時に行うコマンドです。
そのため、リモートの「master」ブランチから、ローカルの「origin/master」ブランチを介して、ローカルの「master」まで一気に最新情報を取り込みます。
なので、「master」ブランチにマージまでしたくない時はgit fetchを使って下さい。
git pullすると大変なことになります。笑
ただ元にどせますので安心して下さい。
方法はいろいろあるかもしれませんが、一例としては、戻したいコミットのIDを調べて、「git reset --hard id」
で元に戻せます。
この辺はまた別の記事で紹介できればと思います。
最後に
一応最後にコマンドの一例を載せておきます。
・git fetch
$ git fetch origin master
$ git merge origin/master
・git pull
$ git pull origin master
今回はこのコマンドについて説明した感じですね!
それでは、また!
“【Git】git fetch と git pull の違いは何?” に対して1件のコメントがあります。
コメントは受け付けていません。