LoginSignup
4
4

More than 3 years have passed since last update.

git fetchとmerge、pullの関係をわかりやすく説明する【Gitコマンド解説②】

Last updated at Posted at 2021-01-26

Gitコマンドはたくさんありますよね。git addとcommit,pushなどは良く使うコマンドだからわかるけど、

fetchmergepullになると「どういう意味かわからない...」という方は多いのではないでしょうか。

git fetch
git merge 
git pull

今日は3つのGitコマンドについて、できるだけわかりやすく解説していきます。

そもそもgit addとcommit,pushがわからない!という方は、こちらの記事を読んでくださいね。
↓↓↓
git addとcommit、pushの関係をわかりやすく説明する【Gitコマンド解説①】

git pullは、fetchとmergeの両方を組み合わせたコマンド

上記の記事で、ローカルリポジトリの内容をリモートリポジトリに送信(アップロード)することを「push」と呼びましたね。

反対に、リモートリポジトリからローカルリポジトリを更新することを「pull」と呼びます。

Image from Gyazo
画像引用:https://backlog.com/ja/git-tutorial/intro/02/

例えば、A君とB君がチーム開発しているとします。A君が更新したファイルをBくんにも反映させたいです。

これを実現する流れは、以下のようになります。

1.A君がローカルリポジトリの内容をリモートリポジトリに送信(アップロード)する(push)
2.B君がリモートリポジトリからローカルリポジトリを更新する(pull)

これがpullの役割です。見出しには「git pullは、fetchとmergeの両方を組み合わせたコマンド」と書きました。以下のような関係式が成り立ちます。

pull = fetch + merge

ここでfetchとmergeの意味がわからない!となったと思うので、それぞれ解説していきます。

git fetchでリモートからローカルに持ってきて、git mergeでローカルを更新する

リモートリポジトリから最新情報をローカルリポジトリに持ってくることを「fetch」と呼びます。また、fetchを使ってローカルに持ってきた最新情報を更新することを「merge」と呼びます。mergeには「統合する、融合させる」という意味があります。

さきほどの関係式をわかりやすくすると、こんな感じです。

pull(リモートから持ってきて更新) = fetch(リモートから持ってくる) + merge(ローカルを更新)

pullfetchなにが違うの?」と思ったかもしれません。

pullとfetchの違いは、実際にファイルを更新するかどうかの違いです。mergeをしないとローカルが更新されないわけですね。

※個人開発の場合でも、ブランチを分けて作業することが多いと思います。ブランチで作業していた内容を統合させたいときにmergeコマンドを使うことになります。リモートリポジトリを共有するチーム開発だけで使うコマンドじゃないってことです。

まとめ

1.リモートリポジトリから最新情報をローカルリポジトリに持ってくることを**「fetch」**と呼ぶ
2.fetchを使ってローカルに持ってきた最新情報を更新することを**「merge」**と呼ぶ
3.**「pull」**はmergeとfetchをまとめて行うコマンド<br><br>

これで、git fetchとmerge、pullの関係について理解が深まったかと思います。
次回は、git clone、log、branch、statusあたりのコマンドについて解説します。

この記事の説明がわかりやすかった!ここ間違ってるよ!次こんな記事を書いて欲しい!などあればコメント、DMよろしくお願いします。LGTMもぜひ。

Twitterもやってますので、フォローしていただけたらうれしいです。
卓球、心理学、哲学、Webサービス、好きな音楽、カメラ、登山、ランニング、読んだ本などなんでもつぶやいてます。

[https://twitter.com/atsushi101011]

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4