fetch / pull / pushの違い

入門 | 9分 で読める | 2026.06.18

公式ドキュメント

GitHubなどのリモートリポジトリを使うと、fetchpullpush が出てきます。どれもリモートと関係しますが、向きと影響が違います。

一言でいうと

fetchはリモート情報を見る、pullはリモート変更を取り込む、pushは手元のcommitを送る操作です。

比較表

コマンド向き手元の作業ブランチへの影響
git fetchリモート → 手元のリモート追跡情報直接は変えない
git pullリモート → 手元のブランチ取り込んで変える
git push手元 → リモートリモートを更新する

git fetch

fetch は、リモート側の最新情報を取得します。

git fetch

手元の作業ブランチは直接変わりません。安全にリモート状況を確認したいときに使います。

git log --oneline main..origin/main

このように、リモート側にある新しいcommitを確認できます。

git pull

pull は、リモートの変更を手元のブランチへ取り込みます。

git pull

多くの場合、fetchmerge、または設定によって fetchrebase の組み合わせとして動きます。

安全に確認したいときは、いきなりpullせずfetchで状況を見るのが有効です。

git push

push は、手元のcommitをリモートへ送ります。

git push

初回pushでは、上流ブランチを設定することがあります。

git push -u origin feature/example

よくある場面

状況使うコマンド
リモートに変更があるか見たいgit fetch
リモート変更を取り込みたいgit pull
自分のcommitをGitHubへ送りたいgit push
pushが拒否されたまず git fetch で状況確認

よくある誤解

誤解実際
fetchとpullは同じpullは手元ブランチも変えます
commitしたらGitHubに上がるpushするまで上がりません
pullは常に安全コンフリクトや意図しないmergeが起きます
pushは自分だけに影響するリモートを見ている人にも影響します

まとめ

git fetch はリモート情報を取得するだけ、git pull はリモート変更を手元に取り込む、git push は手元のcommitをリモートへ送る操作です。慣れないうちは、pull の前に fetch で状況を確認すると安全です。

参考リソース

← 一覧に戻る
PR
PR
PR
PR