サンプル料理教室のパソコンには、料金表_最新.html、料金表_最新_v2.html、料金表_最新_v2_修正.html が並んでいました。どれが本当の最新なのか、代表にも受付Aにも分かりません。Gitは、こうして増えるファイルを1つに戻し、いつ・誰が・何を変えたかをフォルダの中に残す道具です。読み終わると、GitとGitHubとGitHub Desktopの違いと、Gitが何を保存しているのかを自分の言葉で説明できます。
この記事の内容
先に答えると
Gitは、フォルダの中身の変更履歴を残す無料の道具です。自分のパソコンの中で動くので、ネットもアカウントも要りません。GitHubは、その履歴を預かって人と共有するネットのサービスで、Gitとは別のものです。
- Git: 履歴を残す本体。無料で、パソコンの中で動く
- GitHub・GitLab: 履歴を預かる置き場所のサービス
- GitHub Desktop: Gitをボタンで操作するアプリ
- 履歴の単位はコミット。ファイル1つではなく、フォルダ全体の保存地点
- 得意なのはテキスト。Excel・PDF・画像は「変わった」ことしか分からない
GitとGitHubとGitHub Desktopは3段に分かれている
名前が似ているので混ざりますが、3つは段が違います。メールに置き換えると分かりやすいです。
| 段 | 名前 | していること | メールに置き換えると |
|---|---|---|---|
| 操作する道具 | GitHub Desktop、Sourcetree、VS Code、黒い画面の git コマンド | Gitに指示を出す | メールアプリ |
| 本体 | Git | 履歴を記録し、送り、受け取る | メールの仕組み |
| 置き場所のサービス | GitHub、GitLab、Bitbucket | 履歴を預かり、人と共有する | Gmailなどのサービス |
メールの仕組みがあるから、Gmailでも別のサービスでも送り合えます。Gitも同じで、中身の履歴は同じGitなので、GitHubからGitLabへ置き場所を移せます。メールアプリを替えても届くメールが変わらないように、GitHub Desktopでコミットしても git commit でコミットしても、できる履歴は同じです。

ここで一番多い勘違いは「Gitを使うにはGitHubのアカウントが要る」です。要りません。代表が1人で料金表の履歴を残すだけなら、Gitだけで完結します。GitHubが要るのは、パソコンの外に控えを置きたいときと、外注エンジニアBと一緒に直したいときです。
3つの言葉だけ先に覚える
このあと出てくる言葉は3つです。
| 言葉 | 意味 | 料理教室では |
|---|---|---|
| リポジトリ | 履歴つきのフォルダ | ホームページのファイルが入った website フォルダ |
| コミット | フォルダ全体の保存地点。誰が・いつ・何のために、のメモがつく | 「料金表を修正」という1回の保存 |
.git | 履歴の実体が入った隠しフォルダ | website の中にできる |
コミットは、ファイル1つの保存ではありません。Pro Gitの説明では、Gitはコミットのたびにその時の全ファイルの状態をスナップショット(その瞬間の写し)として記録します。変更がないファイルはもう一度保存せず、前と同じものを指すだけなので、フォルダが何倍にも膨らむことはありません。
「料金表を直して、同時に電話番号も直した」なら、2つのファイルの変更を1つのコミットにできます。逆に、料金表の修正と夏の教室の追加は分けてコミットしておくと、片方だけ元に戻せます。
料金表の修正を、Gitでやるとこうなる
実際に動かしたものをそのまま載せます。website フォルダに menu.html(料金表)を置いて、Gitの管理を始めるところからです。
websiteフォルダでgit init -b mainを実行します。フォルダの中に.gitができて、ここからがリポジトリですgit add menu.htmlで、次の保存に入れるファイルを選びますgit commit -m "料金表を追加"で保存地点を作ります
$ git add menu.html
$ git commit -m "料金表を追加"
[main (root-commit) 40615fb] 料金表を追加
1 file changed, 3 insertions(+)
create mode 100644 menu.html
40615fb はこのコミットの番号です。Gitが中身から自動で計算します。覚える必要はありません。
次に、体験教室の料金を3,000円から3,500円に変えます。ファイル名はそのままで、中身だけ書き換えます。料金表_v2.html は作りません。保存前に何を変えたかは git diff で見られます。
$ git diff
diff --git a/menu.html b/menu.html
index 93a0b15..1622fb2 100644
--- a/menu.html
+++ b/menu.html
@@ -1,3 +1,3 @@
<h1>料金表</h1>
-<p>体験教室 3,000円</p>
+<p>体験教室 3,500円</p>
<p>月謝 12,000円</p>
- の行が消えた行、+ の行が増えた行です。これが差分(変更点の表示)で、1文字の間違いもここで見つかります。問題なければもう一度 git add と git commit をします。
$ git commit -m "料金表を修正"
[main 2e4e344] 料金表を修正
1 file changed, 1 insertion(+), 1 deletion(-)
$ git log
commit 2e4e3446272ef4b87123470be826cc481d01ee1c
Author: 代表 <daihyo@sample-cooking.example>
Date: Sat Nov 7 09:28:46 2026 +0900
料金表を修正
commit 40615fb3849132555204dca013de6b6611b91c9e
Author: 代表 <daihyo@sample-cooking.example>
Date: Sat Nov 7 09:27:45 2026 +0900
料金表を追加
フォルダに見えるファイルは menu.html 1つのままです。それでも、1つ前の中身はいつでも取り出せます。HEAD~1 は「いまの1つ前」という意味です。
$ git show HEAD~1:menu.html
<h1>料金表</h1>
<p>体験教室 3,000円</p>
<p>月謝 12,000円</p>
これで、ファイル名に 最新 や v2 を書く理由がなくなりました。どれが最新かは、フォルダにあるものが最新です。前の版は履歴にあります。

履歴の実体は .git にある
ls -a で隠しファイルまで表示すると、.git が見えます。
$ ls -a
.
..
.git
menu.html
履歴はすべてここに入っています。サーバーでもクラウドでもなく、このフォルダの中です。だから、ネットがなくても履歴を見られますし、コミットもできます。Pro Gitにも、プロジェクトの履歴はまるごとローカルのディスクにあるので、大体の操作はネットワークが要らないと書かれています。
逆に、.git を消すと履歴だけが消えます。コピーしたフォルダで試すとこうなります。
$ rm -rf .git
$ ls -a
.
..
menu.html
$ git log
fatal: not a git repository (or any of the parent directories): .git
menu.html は残っています。残るのはいまの状態だけで、過去はなくなります。ふだん .git の中を手で触ることはありません。消すのは、履歴を捨てると決めたときだけです。

Googleドライブの版の履歴と何が違うのか
Googleドライブにも版の履歴があります。ただ、持っているものが違います。
| 比べるところ | Git | Googleドライブの版の履歴 |
|---|---|---|
| 単位 | フォルダ全体を1回で記録 | ファイル1つずつ |
| 保存のタイミング | 自分で決めてコミットしたとき | 自動。アップロードしたファイルは新しい版を上げたとき |
| メモ | コミットごとに書く | Googleドキュメントは版に名前を付けられる |
| 差分 | 行ごとに出る。git diff で見る | 版を開いて見比べる |
| 消えるか | 自分で消さない限り残る | アップロードしたファイルの版は30日後、または新しい版が100個できると消えることがある |
| ネット | 要らない | つながっている前提 |
| 向いているもの | ホームページ、スクリプト、設定ファイル | 文書、表、資料 |
アップロードしたファイルの版は、「この履歴を削除しない」を選ぶと残せます。また、Googleドキュメント・スプレッドシート・スライドの版の履歴は、ドライブのファイルの版とは別の仕組みです。
いちばん大きいのは単位です。menu.html と style.css を一緒に直して、片方だけ戻すと表示が崩れる変更があります。Gitなら「この時点のフォルダ全体」に戻れます。ドライブでは1ファイルずつ、日時を見ながら合わせることになります。
Gitが得意なものと苦手なもの
Gitが行ごとの差分を出せるのは、中身がテキストのファイルです。HTML、CSS、Pythonのスクリプトは全部テキストなので、git diff で何が変わったか読めます。
Excelは違います。料金の一覧を price.xlsx というExcelのファイルにして、同じように金額を3,000から3,500に変えて試すとこう出ます。
$ git diff
diff --git a/price.xlsx b/price.xlsx
index 74448bb..bf9b786 100644
Binary files a/price.xlsx and b/price.xlsx differ
「このファイルは違います」としか言ってくれません。どのセルが変わったのかは分かりません。PDFや画像も同じです。履歴として残すこと自体はできるので、前の版は取り出せます。読めないのは差分だけです。
| ファイル | Gitで何が分かるか | 扱い方 |
|---|---|---|
index.html、menu.html、style.css | 行ごとの変更 | Gitに向いている |
send_mail.py | 行ごとの変更 | Gitに向いている |
images/ の写真 | 変わったことだけ | 少しならよい。大きいものは入れない |
| Excel、PDF | 変わったことだけ | 共有は別の場所でよい |
.env(パスワードなどを書くファイル) | 関係なく入れてはいけない | リポジトリに入れない |
大きなファイルには、GitHub側の上限もあります。50MiBを超えると警告が出て、100MiBを超えるとブロックされます。写真や動画をまとめて入れる場所ではない、と考えておくと困りません。
Gitはどこから来たのか
Gitは2005年に、Linus TorvaldsらLinuxの開発者たちが作りました。それまで使っていたBitKeeperという道具の無償利用が取り消されたのがきっかけです。
料金の話もここで片づけます。Git本体は無料で、GPLv2というオープンソースのライセンスで公開されています。お金がかかるかもしれないのはGitHubなどの置き場所のサービスのほうです。
使わなくていい場面
Gitは何にでも使う道具ではありません。
- 受付Aと代表が同時に書く文書: Googleドキュメントのほうが速いです。Gitは同時に1つの文章を打ち合う道具ではありません
- 毎月の売上のExcel: 差分が読めないので、Gitに入れても得るものが少ないです
- 写真の整理: ドライブなどの置き場所で足ります
- 一度書いて直さない資料: 履歴を残す理由がありません
サンプル料理教室でGitに入れるのは、ホームページの website と予約メールの reservation-mail の2つだけです。講師の資料や教室の写真の原本はこれまでどおりドライブに置きます。
このサイトを読む順番
全体は5つの段で並べています。最初から順に読むとつながるように書きました。
| 段 | 分かること | 最初に読む記事 |
|---|---|---|
| はじめる | Git・GitHub・GitLabの違いと料金 | GitHubとは:できることと、公開・非公開の考え方 |
| 手元の道具 | 自分のパソコンの準備 | Gitのインストールと初期設定:MacとWindows、名前とメールと認証 |
| 基本の操作 | 保存・送信・合流・元に戻す | git add・commit・pushの違い:保存して送るまでの流れ |
| 安全に使う | 入れてはいけないもの、権限 | .gitignoreの書き方と、リポジトリに入れてはいけないファイル |
| 広げる | 自動処理、サイト公開、AIとの使い方 | GitHub CopilotとClaude Code:AIでコードを書くときのGitの使い方 |

できないことと、その代わり
| Gitだけではできないこと | その代わり |
|---|---|
| パソコンが壊れたときの備え | GitHubやGitLabに送って、外に控えを置く |
| 別の人とのやり取りや確認 | プルリクエスト(Pull Request、PR。変更の確認を頼む機能)を持つGitHubなどを使う |
| Excelや画像の中身の比較 | それぞれのアプリの比較機能を使う |
| 文書の同時編集 | Googleドキュメントなどを使う |
| パスワードの安全な保管 | Gitには入れず、パスワード管理の道具に入れる |
パソコンの中の履歴は、パソコンが壊れれば一緒になくなります。Gitを始めたら、控えをどこかに送るところまでやって一区切りです。
よく詰まるところ
git と打つと command not found と出る
Gitが入っていないか、入れたあとターミナルを開き直していません。入れ方と確かめ方は「Gitのインストールと初期設定:MacとWindows、名前とメールと認証」に書きました。
not a git repository と出る
いるフォルダがリポジトリの中ではありません。ls -a で .git が見えるか確かめます。別のフォルダにいるなら移動します。.git を消してしまった場合、そのパソコンの履歴は戻りません。GitHubに送ってあれば、そこから取り直せます。
コミットしようとすると名前とメールを聞かれる
Gitは「誰が」を記録するので、名前とメールの設定が要ります。アカウント登録ではなく、パソコンの中に書くだけの設定です。設定の仕方も上の記事にあります。
フォルダをコピーしたら履歴が2つになった
.git ごとコピーしたので、履歴も2つに分かれています。片方で直した内容はもう片方に入りません。使うのは1つに決めて、もう1つは消します。ドライブやDropboxの同期フォルダに .git を置くのも、同期のタイミング次第で壊すことがあるので避けています。
変更したのに git commit で「no changes added to commit」と出る
git add をしていません。Gitは、選んだファイルだけをコミットします。git status を打つと、選ばれていないファイルが出ます。
差分が Binary files ... differ としか出ない
ExcelやPDFなど、テキストではないファイルです。壊れているわけではありません。前の版を取り出して、アプリで見比べます。
次に読む
GitHubを使う予定があるなら「GitHubとは:できることと、公開・非公開の考え方」へ進みます。保存と送信の違いを手で確かめたいなら「git add・commit・pushの違い:保存して送るまでの流れ」です。置き場所を選ぶ段階なら「GitHubとGitLabの違い:料金・機能・自社サーバーで比べる選び方」、パソコンの準備からなら「Gitのインストールと初期設定:MacとWindows、名前とメールと認証」を読んでください。