Notes

GitとGitHub の違い

GitGitHub初心者

Git と GitHub。名前が似ていて、エンジニア以外でAI開発を始めたばかりの人は戸惑うことがあるのではないでしょうか。

混同したまま進むと具体的にどう困るかを、わかりやすくまとめてみました。

なぜ混ざるのか

理由は3つあります。

①名前が似ています。

Git と GitHub。後ろに Hub が付いただけなので、同じものの言い換えに見えます。

②同時に出てくる。

入門記事はたいてい「git init して、GitHub に push しましょう」と一息で説明します。 初めて読む人には、どこまでが Git でどこからが GitHub なのか切れ目が見えません。

③どちらも「コードを保存するもの」と説明される。

これが決定的です。

同じ説明をされた二つを、別のものとして覚えるのは無理があります。

つまり混ざるのは、あなたの理解力の問題ではありません。説明のされ方の問題です。

答え:道具と場所

こう切り分けてください。

Git は、あなたのパソコンの中で動く記録の道具です。 インターネットは要りません。 GitHub のアカウントが無くても使えます。

GitHub は、その記録を預ける場所です。 Git が作った記録をそのまま受け取って、保管して、他の人と共有できるようにするサービスです。

Word と Google Drive の関係に近いです。 Word は手元で動く道具、Drive は置き場所。Word で書いた文書を Drive に預けることはできますが、Drive が無くても Word は使えます。 Git と GitHub もそうです。

置き場所は、GitHub でなくてもいい

ここが分かると、腹に落ちます。

Git の記録を預けられる場所は GitHub だけではありません。GitLab でも Bitbucket でも、自分で立てたサーバーでも構いません。置き場所を変えても、手元の Git はまったく同じように動きます。

逆は成り立ちません。**Git を使わずに GitHub を使うことは、ほぼできません。 ** GitHub は Git の記録を前提に作られているからです。

どちらが本体かは、これで決まります。Git が本体で、GitHub はその預け先の一つです。

混同したまま進むと起きること

実際に困るのは、次の4つです。

1. 「GitHub に上げたのに、サイトに反映されない」

いちばん多い詰まりです。原因は、手元に記録しただけで、外に出していないこと。

コミット(commit)  手元に記録する         ← ここまでは自分のパソコンの中
プッシュ(push)    その記録を外に出す     ← ここで初めて GitHub に届く

コミットは日記を書く行為、プッシュはそれを郵便で送る行為です。書いただけでは相手に届きません。

2. 「GitHub で直接編集したら、手元と食い違った」

GitHub の画面上でもファイルを直せます。ただしそれをやると、GitHub側が進んで、手元が遅れます。 その状態で手元から送ろうとすると、衝突します。

外で進んだ分を取り込むのが プル(pull)です。編集した場所を一つに決めておくと、この事故はほぼ起きません。

3. 「GitHub のリポジトリを消したら、手元のコードも消える?」

消えません。Git の記録は、あなたのパソコンの中にあります。 GitHub 側は預けた写しです。

これが分かっていないと、GitHub の操作がずっと怖いままになります。逆も同じで、手元のフォルダを消しても、GitHub に上げてあれば残っています。

4. 「バックアップしているつもりだった」

これがいちばん痛い事故です。私も今日やりました。

新しいサイトのテンプレートを一日かけて作って、配色も文章も画像も作り込んで、そこで気づきました。git のリポジトリすら作っていませんでした。 コミットも push もしていないので、あのフォルダを間違って消したら、一日分がそのまま消えていました。

コミットだけしていて push していない場合も同じです。手元にしか無い記録は、パソコンが壊れたら消えます。 コミットは記録、push は退避。役割が違います。

AIに任せると、境目が見えない

いまは Claude Code に「GitHub に上げて」と頼むだけで、初期化からコミット、リモートの設定、push まで全部やってくれます。速いです。

ただ、そのぶんどこまで進んだのかが見えません。 全部まとめて起きるので、境目を意識する機会がありません。

そして事故は、この境目で起きます。「上げたつもりだった」の中身は、たいてい「コミットしただけだった」です。

だから覚える目的は、コマンドを打てるようになることではありません。いまどこまで進んでいるかを自分で言えるようになることです。それが分かっていれば、こういう指示が出せます。

「いまの変更をコミットだけして、push はしないで。」
「手元の変更を捨てて、GitHub の状態に戻して。」
「いまコミット済みで push していないものがあるか教えて。」

境目が分かっていないと、この指示は出てきません。 そして出せないと、AIの判断に任せるしかなくなります。

覚えるのは3つだけ

コミット(commit)  手元に記録する
プッシュ(push)    記録を外(GitHub)に出す
プル(pull)        外の変更を手元に取り込む

これだけです。あとは必要になったときに調べれば足ります。

そのうえで、ひとつだけ習慣にしてください。作業を終える前に push すること。 コミットで満足して止めると、それはまだバックアップではありません。

まとめ