LoginSignup
25
23

More than 3 years have passed since last update.

【初心者向け】git pull, git fetch, git pushで何が起きているか図解してみた

Posted at

はじめに

最近Gitの勉強をしているのですが、git pullやgit fetch等解釈が難しいと感じたので、図解してみようと思います。
同じくpull, fetch, pushで混乱している人の参考になれば良いなと思います。

分かりにくかったり、誤った記載があれば、コメント欄にて優しく教えていただけると嬉しいです!

用語の説明

  • リポジトリ:リポジトリとは変更を記録するための場所です。

    • ローカルリポジトリ:自分のPC上のリポジトリ
    • リモートリポジトリ:ネットワーク上のリポジトリ(Github等)
  • ブランチ:直近のコミットを指し示すポインタ

    • ローカルブランチ:ローカルにあるブランチ(例:master)
    • リモート追跡ブランチ:リモートブランチの動きを追跡するブランチ(例:origin/master)
    • リモートブランチ:ネットワーク上にあるブランチ(例:master)

git pull, git fetch, git pushについて

git pull, git fetch、git pushの動きを大まかに見ていこうと思います。

  • git pull
    「ローカルリポジトリ」が、「リモートリポジトリ」から情報を更新するコマンドです。
    「リモート追跡ブランチ」と「ローカルブランチ」の情報を更新することができます。
  • git fetch
    「ローカルリポジトリ」が、「リモートリポジトリ」から情報を更新するコマンドです。
    「リモート追跡ブランチ」のみ情報を更新することができます。
  • git push
    「リモートリポジトリ」が、「ローカルリポジトリ」から情報を更新するコマンドです。

【イメージ図】
概要.png

それではもう少し詳しく見ていきましょう!

git pull

git pullは「ローカルリポジトリ」が、「リモートリポジトリ」から情報を更新するコマンドです。
「リモート追跡ブランチ」と「ローカルブランチ」の情報を更新することができます。
コードは以下の通りです。

$ git pull リモート名 ブランチ名

# 以下は「リモートリポジトリ」のmasterブランチの情報をpullするときのコマンドです。
$ git pull origin master

git pullを使う際は、今いる「ローカルブランチ」とpullしたい「リモートブランチ」が一致していることを確認しましょう。
※例えば上記のコードにおいて、「ローカルブランチ」がmaster以外のブランチ(例えば、branch1とします)の状態で、pullしてしまった場合、branch1がリモートのmasterブランチの情報で更新されてしまいます。

【git pullのイメージ】
git pull.png

git fetch

git fetchは「ローカルリポジトリ」が、「リモートリポジトリ」から情報を更新するコマンドです。
「リモート追跡ブランチ」のみ情報を更新することができます。
git fetchの後にgit mergeをするとgit pullと同じことが起きます。

$ git fetch リモート名

# 以下は「リモートリポジトリ」の情報をfetchするときのコマンドです。
$ git fetch origin

【git fetchのイメージ】
git fetch.png

git push

git pushは「ローカルリポジトリ」から「リモートリポジトリ」に情報を送るコマンドです。
指定したブランチ(例:master)のみ「リモートリポジトリ」の情報を更新することができます。
※次に出てくる【git pushのイメージ】の通り、指定していないブランチ(図の場合branch)は更新されません。

$ git push リモート名 ブランチ名

# 以下は「ローカルリポジトリ」のmasterブランチを「リモートリポジトリ」のmasterブランチにpushするときのコマンドです。
$ git push origin master

【git pushのイメージ】
git push.png

25
23
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
25
23