2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】リモートとローカルの構成、fetch, pull, pushの動きを図解

2
Last updated at Posted at 2025-09-26

はじめに

みなさん、Gitは使っていますか?
Gitとは、チーム開発をするなら必須と言っていいバージョン管理システムです。

ここでは、リモートとローカルの構成、
それらに対するGit操作で何が起きているかを画像付きで説明します。
「よくわかってないけどpullでびゅーんて持ってきて作業したらpushすればええんやろ?」
くらいの認識の人に読んでほしい記事です。

リモートとローカルの構成

  • リモートブランチ:リモートリポジトリあり、他のメンバーと共有するブランチ
  • ローカルブランチ:ローカルリポジトリにあり、自分だけが触るブランチ
  • リモート追跡ブランチ:ローカルリポジトリにあり、リモートブランチの状態をローカルに保存するブランチ

image.png
リモートブランチとローカルブランチは分かるけど、リモート追跡ブランチがピンと来てないなあ...
そう思ったあなた、これはあなたのための記事と言ってもいい。

git merge

他のブランチの変更内容を取り込みます。
他のローカルブランチから取り込んでもいいし、
リモート追跡ブランチから取り込んだっていい。
image.png

git merge <取り込みたいブランチ名>

ただし、リモートブランチから直接取り込むことはできません。
じゃあどうすればいいか。

git fetch

リモート追跡ブランチは常にリモートブランチと同期しているわけではありません。
誰かがリモートブランチを更新したら、自分で最新化する必要があります。
それがfetchです。
image.png

git fetch

fetchはブランチ指定もできますが、しなければ全ブランチが最新化されます。
これをして損することはまずないので基本これで問題ないです。

リモートブランチの内容をローカルブランチに取り込みたい時は、
fetchして最新化したリモート追跡ブランチをmergeすればいいのです。
なんかめんどくさくない?

git pull

それを一度にやってくれるのがpullです。
pullはリモート追跡ブランチをfetchで最新化し、それをmergeしているのです。
image.png

git pull

mergeはカレントブランチ(今いるブランチ)にしかされませんが、fetchは前述の通り全ブランチに対して行われます。

git push

これは逆にローカルブランチの変更内容をリモートブランチに反映するものです。
同時にリモート追跡ブランチにも反映されます。
image.png

git push

こちらはpullのように実は2段階で~のようなことはありません。
リモート追跡ブランチは文字通り「リモートを追跡する」ためのものなので、
一旦リモート追跡ブランチに反映してリモートブランチより進んだ状態にする意味はないという思想なのでしょう。

まとめ

以上をまとめるとこのような図になります。
image.png

以上、普段なんとなくで使っているコマンドの理解が深まれば幸いです。
ここまで読んでいただきありがとうございました。

おまけ

fetchって使うことある?全部pullでよくない?

あります。
例えば他のメンバーがfeatureブランチをpushして、自分がそのブランチをローカルに持ってきたい時。
この時点では自分のローカルにfeatureブランチはないのでpullできません。
image.png
こういう時は、まずfetchしてリモート追跡ブランチを最新化しましょう。

git fetch

image.png
その後、git branchすることでリモート追跡ブランチからローカルブランチを作成できます。

git branch feature origin/feature

image.png
git switchを使うことで、作成するだけでなくそのブランチに切り替えることもできます。
ブランチを作ってそのまま作業したいことが多いと思うので、基本こちらを使えばいいと思います。

git switch -c feature origin/feature

git checkoutでも同じことができるのですが、今はswitchが推奨されているようです。
(自分はcheckoutで覚えたので今もこちらを使ってしまいます...)

git checkout -b feature origin/feature

以上、おまけでした。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?