Gitとは:GitHubとの違いと、履歴を残す仕組み

公開 更新 書いた人 大林 諒

サンプル料理教室のパソコンには、料金表_最新.html、料金表_最新_v2.html、料金表_最新_v2_修正.html が並んでいました。どれが本当の最新なのか、代表にも受付Aにも分かりません。Gitは、こうして増えるファイルを1つに戻し、いつ・誰が・何を変えたかをフォルダの中に残す道具です。読み終わると、GitとGitHubとGitHub Desktopの違いと、Gitが何を保存しているのかを自分の言葉で説明できます。

この記事の内容
  1. 先に答えると
  2. GitとGitHubとGitHub Desktopは3段に分かれている
  3. 3つの言葉だけ先に覚える
  4. 料金表の修正を、Gitでやるとこうなる
  5. 履歴の実体は .git にある
  6. Googleドライブの版の履歴と何が違うのか
  7. Gitが得意なものと苦手なもの
  8. Gitはどこから来たのか
  9. 使わなくていい場面
  10. このサイトを読む順番
  11. できないことと、その代わり
  12. よく詰まるところ
  13. 次に読む

先に答えると

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、ネットの置き場所の3段の関係
操作する道具、手元のGit、ネットの置き場所の3段の関係

ここで一番多い勘違いは「Gitを使うにはGitHubのアカウントが要る」です。要りません。代表が1人で料金表の履歴を残すだけなら、Gitだけで完結します。GitHubが要るのは、パソコンの外に控えを置きたいときと、外注エンジニアBと一緒に直したいときです。

3つの言葉だけ先に覚える

このあと出てくる言葉は3つです。

言葉意味料理教室では
リポジトリ履歴つきのフォルダホームページのファイルが入った website フォルダ
コミットフォルダ全体の保存地点。誰が・いつ・何のために、のメモがつく「料金表を修正」という1回の保存
.git履歴の実体が入った隠しフォルダwebsite の中にできる

コミットは、ファイル1つの保存ではありません。Pro Gitの説明では、Gitはコミットのたびにその時の全ファイルの状態をスナップショット(その瞬間の写し)として記録します。変更がないファイルはもう一度保存せず、前と同じものを指すだけなので、フォルダが何倍にも膨らむことはありません。

「料金表を直して、同時に電話番号も直した」なら、2つのファイルの変更を1つのコミットにできます。逆に、料金表の修正と夏の教室の追加は分けてコミットしておくと、片方だけ元に戻せます。

料金表の修正を、Gitでやるとこうなる

実際に動かしたものをそのまま載せます。website フォルダに menu.html(料金表)を置いて、Gitの管理を始めるところからです。

  1. website フォルダで git init -b main を実行します。フォルダの中に .git ができて、ここからがリポジトリです
  2. git add menu.html で、次の保存に入れるファイルを選びます
  3. 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 を書く理由がなくなりました。どれが最新かは、フォルダにあるものが最新です。前の版は履歴にあります。

ファイル名を増やす管理と、1つのファイルに履歴が残るGitの違い
ファイル名を増やす管理と、1つのファイルに履歴が残るGitの違い

履歴の実体は .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 の中を手で触ることはありません。消すのは、履歴を捨てると決めたときだけです。

.git を消してもファイルは残り、履歴だけが消える
.git を消してもファイルは残り、履歴だけが消える

Googleドライブの版の履歴と何が違うのか

Googleドライブにも版の履歴があります。ただ、持っているものが違います。

比べるところGitGoogleドライブの版の履歴
単位フォルダ全体を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、名前とメールと認証」を読んでください。

あわせて読む