メインコンテンツへスキップ
見出し画像

Gitのfetchとpullの違い、毎回ごっちゃになる問題

    Git触り始めた頃、

    git fetch
    git pull

    この2つの違いが本当に分からなかったです。

    どっちも

    「最新を取ってくるやつ」

    に見える。

    でも実際は、

    “手元のファイルを書き換えるかどうか”

    がかなり大きな違いです。

    ここ整理すると、
    Gitの解像度かなり上がります。


    fetch と pull の違い

    まず結論。

    git pull

    は内部的に、

    git fetch
    git merge

    をまとめて実行しています。

    つまり、

    pull = fetch + merge

    です。


    git fetchとは?

    git fetch

    は、

    「リモートの最新情報を取得するだけ」

    のコマンドです。

    重要なのは、

    自分の作業ファイルは書き換わらない

    ということ。

    かなり安全。

    イメージとしては、

    郵便受けに届いた手紙を回収するだけ

    です。

    まだ部屋では開かない。

    なので、

    「他の人が何を変更したか確認したい」

    みたいな時に使いやすい。


    git pullとは?

    一方、

    git pull

    は、

    最新情報を取得したあと、

    今の自分の作業に合体させます。

    つまり、

    手元のファイルが更新される。

    イメージとしては、

    手紙を開いて、自分のノートに直接書き込む

    感じ。

    便利なんですが、
    不用意に使うと事故ります。


    なぜプルリク確認で fetch を使うのか

    これ、
    実務だとかなり重要。

    例えば他人のプルリクを確認したい時。

    いきなり pull すると、

    自分の作業ブランチに
    他人の変更が混ざる可能性があります。

    なので普通は、

    git fetch

    で安全に情報だけ取得して、

    そのあと

    git checkout

    や

    git switch

    で対象ブランチへ移動して確認します。

    特に、

    画像
    Excel
    PDF

    みたいなバイナリファイル確認時は、

    VSCodeへフェッチして
    ローカルで目視確認することが多いです。


    Gitコマンド整理

    Gitはコマンドが多いので、

    「何を目的に使うか」

    で整理すると分かりやすいです。


    自分の変更を保存する系

    git add

    git add .

    変更したファイルを、

    「保存候補」

    としてステージングする。

    まだ保存確定ではない。


    git commit

    git commit -m "ログイン修正"

    変更内容を履歴として保存。

    ここで初めて
    Gitに記録される。


    GitHubと同期する系

    git push

    git push

    自分のコミットを
    GitHubへアップロード。

    チーム共有。


    git fetch

    git fetch

    最新情報だけ取得。

    手元ファイルは安全。


    git pull

    git pull

    最新取得+自動合体。

    便利だけど影響範囲大きい。


    ブランチ操作系

    git branch

    git branch

    ブランチ一覧確認。

    今どこにいるか確認できる。


    git checkout

    git checkout feature/login

    別ブランチへ移動。

    昔からある。


    git switch

    git switch feature/login

    最近はこちらも多い。

    「移動専用」で分かりやすい。


    状況確認系

    git status

    git status

    Git初心者の命綱。

    迷ったらこれ。

    今の状態全部見れる。


    git log

    git log

    変更履歴確認。

    誰がいつ何したか見れる。


    Gitは「履歴管理システム」と考えると分かりやすい

    最初は、

    fetch
    pull
    checkout
    merge
    rebase

    みたいな単語だらけで混乱します。

    でも実際は、

    • 情報を取ってくる

    • 保存する

    • 合体する

    • 作業場所を切り替える

    をやってるだけ。

    ここが整理できると、

    「今Gitが何をしているのか」

    が見えるようになってきます。

    あなたへのおすすめ