
この記事では、Gitの基本操作の中でもチーム開発やGitHub連携で必須となる「push」「pull」「fetch」の違いと使い方をわかりやすく解説します。初心者でもつまずきがちなリモート操作を、実例と一緒にしっかりマスターしましょう。
GitとGitHubの関係:リモートリポジトリの役割

Gitでは、作業を行うローカル環境のローカルリポジトリとは別に、GitHubなどに置かれた「リモートリポジトリ」が存在します。 チームでコードを共有・統合するには、ローカルとリモート間でのやりとりが必要です。 そのために使うのが push
、pull
、fetch
といったリモート操作コマンドです。
中でも GitHubは、Gitのリモートリポジトリをホスティングする代表的なサービスです。 クラウド上にある Gitリポジトリを複数人で共有・管理でき、以下のようなメリットがあります:
- 複数人でコードを共同編集できる
- バージョン管理されたコードの履歴を誰でも確認できる
- プルリクエストを通じたレビューや議論が可能
- 自動テストやCI/CDとの連携ができる
GitHubにpush
した変更は、チーム全員がpull
することで取り込めます。このように、GitとGitHubはローカルとリモートをつなぎ、チーム開発の基盤を作る重要な組み合わせです。
▶︎ git push:ローカルの変更をリモートに送る
git push origin ブランチ名
- ローカルでcommitした内容を、リモートリポジトリにアップロードします。
- 例:
git push origin main
- チームに変更を共有したいときや、GitHubでPull Request※を出す前に行います。
💡 push 前に
git pull
して最新の状態を取り込むのがベストプラクティスです。
※Pull Request(プルリクエスト)とは、自分の変更をチームに提案し、レビュー・議論・マージを依頼する仕組みです。次の記事で詳しく解説します。
▶︎ git pull:リモートの変更をローカルに取り込む
git pull origin ブランチ名
- リモートリポジトリの最新変更をダウンロードし、現在のブランチに自動でマージします。
- 例:
git pull origin main
- 他のメンバーが加えた変更を自分の環境に反映させたいときに使います。
⚠️ マージされるので、競合(コンフリクト)が発生する可能性もあります。
▶︎ git fetch:リモートの変更を確認だけする
git fetch origin
- リモートの最新情報を取得しますが、ローカルには自動でマージされません。
- 手動で比較・確認してから
merge
やrebase
をしたいときに使います。 - 例:
git fetch origin
→git log origin/main
で内容確認
💡 慎重に作業したいときは
fetch
→diff
→merge
の流れがおすすめです。
push / pull / fetch の違い早見表
以下の表は、Gitのリモート操作における push
、pull
、fetch
の違いを比較したものです。どの操作がどの方向に影響を与えるのか、マージされるかどうか、どんな場面で使うのかを把握しておきましょう。
コマンド | 処理方向 | 自動でマージ | 主な用途 |
---|---|---|---|
git push | ローカル → リモート | × | 自分の変更をリモートに共有したいとき |
git pull | リモート → ローカル | ○ | 他人の変更を取り込みたいとき |
git fetch | リモート → ローカル | × | リモートの最新情報だけ取得したいとき |
コマンドの流れを図で確認しよう
以下の図は、Gitの各操作が「どの範囲に影響するか」を視覚的に示したものです。この図を使えば、「どのコマンドが、どのタイミングで、どこに影響するのか」が直感的に理解できるようになります。
厳密にはoptionや指定するファイル、コミットID等で影響範囲が変わってきますが、まずはこの図を頭に入れておくだけで、コマンドが何に作用するのか迷わなくなるでしょう。

まとめ
push
はローカルの変更を共有pull
は他人の変更を取り込みつつマージfetch
は確認だけして安全に操作
リモート操作を正しく使い分ければ、GitHubを使ったチーム開発もスムーズに進みます。