このレッスンでできるようになること: Git の全体像(コミット・ローカルとリモート・リポジトリ)のイメージがつかめて、Git をあなたのパソコンにインストールし、この教材を clone で手元に受け取れる。 所要時間: 55〜70分
再開する人へ: ①ターミナルを開く → ②まだ教材を受け取る前なら
~(ホーム)で、受け取ったあとはcd ~/fde-dojoで戻る → ③前回の続きから。
このレッスンは、前半は読むだけ(Git の全体像のイメージづくり)、後半で手を動かします(Git をインストールして、この教材を手元に受け取ります)。用語やコマンドを暗記する必要はありません。まずは「Git ってこういうものか」という地図を頭に持ち、最後に道具を手元へそろえます。
前半に出てくる言葉のうち、今日その手で使うのは「リポジトリ・コミット・clone」の3つだけです。それ以外(push・pull・ブランチなど)は「名前だけ」聞いておけば十分で、実際に手を動かすのは後の章です。どれが「今日使う語」で、どれが「名前だけの語」かを、読みながら意識してみてください。
1. Gitとは(変更を記録して履歴を残す道具)
Git(ギット)は、ファイルの変更履歴を記録して、いつでも過去の状態に戻せる道具です。こういう仕組みを**バージョン管理(version control)**と呼びます。ひとことで言えば「いつ・誰が・何を変えたか」を残し、必要なら過去のどの時点にも戻れるようにする仕組みです。
Git のありがたみは、「なかったら困ること」を思い浮かべると分かりやすいです。
- Git がないと、つい
企画書_最終.docxや企画書_ほんとに最終.docxのように、似た名前のコピーが増えていきます。どれが最新か分からず、上書きで消してしまう事故も起きます。 - Git は変更を1本の履歴にまとめて記録します。だからコピーの山が要らず、失敗しても前の状態へ戻せます。
たとえるなら、ゲームのセーブポイントに近い存在です。要所要所で記録しておき、失敗しても戻れます。
2. コミット(手元で「ここまでの状態」を刻む)【今日使う語】
その記録の1つ1つを、コミットと呼びます。区切りのよいところで「ここまでできた」という状態を、写真のように1枚ずつ残していくイメージです。コミットが積み重なったものが、変更の履歴になります。
- コミット=手元で記録を刻む動き、とだけつかんでおけば十分です(実際に手を動かすのはレッスン06です)。
- ここで大事な感覚が1つあります。コミットは、まだあなたのパソコンの中だけの出来事だということです。誰かと共有されるのは、この後に出てくる「push」をしてからです。
この「手元だけ」と「みんなで共有」の違いが、次の話につながります。
3. ローカルとリモート(手元と、みんなの共有場所)
Git には、大きく2つの場所が登場します。
- ローカル: あなたのパソコンの中。作業場と、手元の記録(コミット)があります。
- リモート: GitHub などのサービス上にある、みんなの共有の保管場所です。
この2つのあいだを、いくつかの動きで行き来します。
- clone(クローン)【今日使う語】: 共有リポジトリを、最初にまるごと手元へ複製して持ってくる動きです。引っ越しの初回コピーのようなものです。この教材も、このレッスンの後半で clone して受け取ります。
- push(プッシュ)【名前だけ】: 手元の記録を、共有の場所へ送る動きです。コミットしただけでは手元のまま。push して初めて、みんなに見える形で外に出ます。
- pull(プル)【名前だけ】: 共有の最新の変更を、手元へ取り込む動きです。
- fetch(フェッチ)【名前だけ】: 共有の最新を「見に行くだけ」の動きです。
push・pull・fetch は、今日は「そういう名前の動きがある」とだけ知っておけば十分です。実際に手を動かすのは第6章です。とくに push には「認証(あなたが送ってよい人だと確かめる関門)」がついてまわります。この教材では、その認証を第3章で gh というツールのブラウザ認証として体験します。
ここでの一番のポイントは、**「コミットは手元」「push で初めて外に出る」**という対比です。これがつかめていれば、チーム開発の会話にだいぶついていけます。
4. ブランチ(枝を分けて、試して、合流)【名前だけ】
もう1つ、チーム開発でよく出てくるのが**ブランチ(枝)**の考え方です。
- 開発には、**main(メイン)**と呼ばれる「本線(幹)」があります。
- そこから枝(ブランチ)を分けて、本線とは別の場所で新しい機能を試せます。本線を壊さずに実験できるのが利点です。
- うまくいったら、その枝を本線へ**合流(マージ)**させます。合流のときに同じ場所を別々に直していると、コンフリクト(衝突)が起きることがあります。Git は黙って上書きせず、「ここが食い違っています」と止めて知らせてくれます。
いまはこの「枝分かれして、試して、合流する」というツリーのイメージだけで十分です。ブランチ・マージ・コンフリクトを実際に手を動かして学ぶのは第6章です。
5. HEAD(今どこにいるかの目印)【名前だけ】
もう1つだけ名前を出します。**HEAD(ヘッド)**は、「あなたが今、どの枝のどの地点にいるか」を指す目印です。レッスン06で git status を打つと、その1行目に On branch main(いま main という枝にいます)のように出ます。それが HEAD の位置の表れです。今は「そういう目印がある」で十分で、動かす操作は第6章です。
6. GitとGitHubは別物【今日使う語: リポジトリ】
混同しやすい2つを切り分けておきます。
- Git: 変更を記録する仕組み・道具そのものです。あなたのパソコンの中で動きます。
- GitHub(ギットハブ): その Git を使って、みんなで記録を共有できる場所(サービス)の1つです。リモートの代表例で、似たサービスは他にもあります。
また、記録の保管庫そのものをリポジトリと呼びます(手元では .git という隠しフォルダにまとまっています)。「ローカルリポジトリ=手元の保管庫」「リモートリポジトリ=共有の保管庫」というわけです。
ここまでの図で使っている Git のロゴは、Jason Long 氏の作品です(Git logo by Jason Long, licensed under CC BY 3.0)。
7. Gitが効く範囲は「.gitのあるフォルダの中」だけ
Git の話でつまずきやすいのが、「Git はどこでも効いている」という思い込みです。実際はそうではありません。Git が働くのは、.git という保管庫があるフォルダの中だけです。
/Users/あなたの名前 ← ホーム。.git が無い → Gitは効かない
└── fde-dojo ← .git がある → ここがリポジトリ(Gitが効く)
├── curriculum
└── workspace
このあと clone すると、fde-dojo フォルダの中に .git(保管庫)ができます。だから fde-dojo の中でだけ Git のコマンドが意味を持ちます。ホームフォルダなど .git の無い場所で Git のコマンドを打つと、Git は「ここはリポジトリではありません」と返します。これは故障ではなく、正しい返事です。後半で実際に確かめます。
Gitをインストールする
地図がつかめたところで、道具を手元に入れます。ここからは手を動かします。
ステップ1: すでに入っていないか確認する
ターミナルで次を打ってください。
git --version
達成状態: git version に続けて数字が表示されたら、すでに入っています。ステップ2は飛ばして、ステップ3へ進んで構いません(数字は違っていて大丈夫です)。「command not found」「認識されません」系の表示なら、ステップ2でインストールします。
(macOS では、このコマンドを打つと「コマンドライン・デベロッパツールをインストールしますか?」というウィンドウが出ることがあります。それが出たら「インストール」を押すだけで Git が入ります。)
ステップ2: インストールする
macOS の人
- ターミナルで
xcode-select --installと打つ - 出てきたウィンドウで「インストール」を押して待つ
回線によっては20〜40分ほどかかることがあります。進行中はそのまま待って構いませんし、離席してもかまいません(バーが進んでいれば作業は続いています)。終わったら git --version で確認してください。
Windows の人
- ブラウザで
https://git-scm.com/を開き、「Download for Windows」からインストーラーをダウンロードして実行します。 - 設定画面がいくつも出ますが、判断が必要なのは次の3つだけです。残りは初期選択のままで進めて構いません。
| 出てくる画面 | どう選ぶか | ひとこと理由 |
|---|---|---|
| 既定のエディタ(default editor) | Vim は選ばない。一覧に「Notepad」か「Visual Studio Code」があればそれを選ぶ | Vim は操作が独特で、初めてだと閉じ方が分からず固まりやすいためです |
| 改行コード(line ending) | 初期選択のままでよい | Windows と Git のあいだで改行を自動調整する、標準の選択になっています |
| PATH の設定 | 中段の初期選択(推奨と書かれたもの)のまま | ターミナルからも Git が使える、標準の設定です |
- インストール完了後、ターミナルをいったん閉じて開き直してから
git --versionで確認します。
PowerShell と Git Bash: Windows 版 Git を入れると「Git Bash」という別のターミナルも一緒に入りますが、この教材はレッスン02で開いた **PowerShell(またはお使いのターミナル)**のまま進めます。Git Bash は今は使いません。
達成状態: git --version で git version に続けて数字が表示されること。これが出ればインストール成功です。
ステップ3: 最初の初期設定(名乗りとエディタ)
コミット(記録)には「誰が記録したか」が一緒に残ります。最初に一度だけ、名前とメールアドレス、それに Git がエディタを開くときの相棒を登録します。次を、自分の情報に書き換えて1行ずつ実行してください。
git config --global user.name "Yamada Taro"
git config --global user.email "yamada@example.com"
- 名前はローマ字でもニックネームでも構いません。メールアドレスは実在するものを(後で GitHub を使うとき、同じものだと楽です)。
- どちらも、実行して無言でプロンプトに戻れば成功です。
続けて、Git がメッセージ入力などでエディタを開くときに、Vim ではなく扱いやすいエディタが開くようにしておきます。これはレッスン08で効いてきます。お使いの OS に合う片方だけを実行してください。
- macOS:
git config --global core.editor "nano" - Windows:
git config --global core.editor "notepad"
最後にもう1行、新しいリポジトリの初期ブランチ名を、いまの標準である main にそろえます。
git config --global init.defaultBranch main
設定できたか確認しましょう。
git config --list --show-origin
達成状態: 一覧の中に user.name user.email core.editor が、あなたの入れた値で並んでいること(長ければ q で抜けます)。
これらの設定は、あなたのホームにある
~/.gitconfigというただのテキストファイルに書き込まれています。--globalは「このパソコンのあなた全体に効く設定」という意味です。特定のフォルダだけの設定もありますが、今は全体で十分です。
ステップ4: 教材を受け取る(clone)
いよいよ、この教材をリモート(共有リポジトリ)から手元(ローカル)へ cloneします。セクション3で見た「まるごと複製」を、実際にやってみます。
まず、置き場所として自分のホームへ移動します。
cd ~
次に、教材の URL を用意します。取り方は次のとおりです。
- ブラウザで、この教材の配布ページ(GitHub など)を開く
- 緑色の 「Code」ボタンを押す
- 表示された URL(
https://で始まり.gitで終わる文字列)の横のコピーボタンで、URL をコピーする
コピーした URL を使って、次のように打ちます。
git clone <コピーしたURL>
<>(山カッコ)の読み方: 手順に出てくる<コピーしたURL>の<と>は、「ここにあなたの値を入れてください」という差し込みの目印です。山カッコごと打つのではなく、<コピーしたURL>の部分をまるごと、コピーした URL に置き換えて打ちます(貼り付けは macOS がcommand + V、Windows は右クリックまたはCtrl + V)。
処理が終わったら、教材フォルダに入って、どこから来たかを確認します。<> を使わない相対的な移動なので、そのまま打って大丈夫です。
cd fde-dojo
git remote -v
達成状態: git remote -v の結果に、origin という名前と https:// で始まる URL が2行(fetch 用と push 用)で表示されること。これが「この手元のコピーが、どの共有リポジトリから来たか」の記録です。
手元に来たのはコピーです。ここで何をしても、共有リポジトリ(本家)は壊れません。安心して散らかして大丈夫です。このフォルダの中で、これから学んでいきます。次の2レッスンで AI と Claude のことを知り、その後このフォルダの中に Claude Code を入れて起動します。
ステップ5: 予測してから確かめる(Gitが効く範囲)
セクション7の「Git が効くのは .git のあるフォルダの中だけ」を、自分の手で確かめます。まず予測してください。いま fde-dojo の中にいます。ここからホームに出て git status を打つと、どちらになるでしょうか。
- A: 履歴や変更の状態が表示される
- B: 「ここはリポジトリではありません」という趣旨のメッセージが出る
予測を決めたら、実際に打ってみます。
cd ~
git status
答え合わせ(開く前に、A か B を決めてから)
正解は B です。fatal: not a git repository(ここは Git のリポジトリではありません)という趣旨のメッセージが出ます。ホームには .git(保管庫)が無いからです。これは故障ではなく、Git の正しい返事です。.git のある fde-dojo の中に戻れば、ちゃんと動きます。
cd ~/fde-dojo
git status
こちらでは On branch main から始まる、まともな結果が出ます。
確かめたら、通し成果物にメモを1行残します。第0章のあいだ、各レッスンで気づきを1行ずつ書きためていく setup-notes.md を、この fde-dojo の中に用意します(cd ~/fde-dojo で戻ってから)。
これまでのメモの引き継ぎ: レッスン02から、ホーム側(
~/workspace/ch0/setup-notes.md)に気づきを書いてきた人は、その中身を、いま受け取った教材フォルダ側(~/fde-dojo/workspace/ch0/setup-notes.md)へ引き継いでおきましょう。写して持ってきても、ここから新しく書き直しても、どちらでも構いません。このレッスン以降は、教材フォルダの中のsetup-notes.mdを使います(レッスン08で Git に記録します)。
mkdir -p workspace/ch0
エディタで開いて、1行書きます。
- macOS:
open -e workspace/ch0/setup-notes.md(「開けない」と出たら、先にtouch workspace/ch0/setup-notes.mdを実行してから開き直す) - Windows:
notepad workspace\ch0\setup-notes.md(「新規作成しますか?」と聞かれたら「はい」)
さきほどの予測が当たったか外れたかを、自分の言葉で1行書いて保存してください(例: 03: ホームでgit statusはB(リポジトリではない)と出た。予測どおり)。このファイルは、レッスン08で Git に記録します。
ステップ6: 困ったら自分で聞く
Git には、自分で説明を呼び出す仕組みがあります。1回だけ試しておきましょう。
git status --help
達成状態: git status の説明ページが開くこと。読み切る必要はありません。q を押せば抜けられます。「困ったら公式の説明を自分で呼べる」と知っておくだけで、この先が楽になります(git help だけでも、よく使うコマンドの一覧が出ます)。
仕組みの解剖 — インストールで何が起きたのか
さっきまで、あなたのパソコンは git という言葉を知りませんでした。今は知っています。何が変わったのでしょうか。
あなた「git --version」
│
▼
シェル(通訳)「gitという名前のプログラムを探そう」
│ PATH = プログラム置き場の住所リスト
│ ① 1つ目の置き場にある? → ない
│ ② 2つ目の置き場にある? → あった! ← インストールで増えたのはこれ
▼
見つけたプログラムを実行して、結果を画面に表示
- インストール=プログラム本体のファイルを、シェルが探しに行く置き場に配置することです。魔法ではなく、ただのファイルのコピーです。
- シェルが探しに行く場所のリストを PATH と呼びます。「インストールしたのに command not found」という定番のつまずきは、たいてい「置いた場所が PATH のリストに入っていない」か「ターミナルを開き直しておらず、新しいリストを読み込んでいない」のどちらかです。だから Windows の手順に「ターミナルを閉じて開き直す」があったのです。
理解ゲート(セルフチェック)
このレッスンはまだ Claude Code を入れる前なので、自分で答え合わせをします。今日その手で使った語についての5問です。声に出して自分の言葉で答えてから、開いて確認してください(暗記の確認ではありません。イメージが持てていれば十分です)。
Q1. Git を一言で言うと?
例:「ファイルの変更履歴を記録して、いつでも過去の状態に戻せる道具(バージョン管理の仕組み)」。
Q2. コミットとは何をすること?
例:「区切りのよいところで、ここまでの状態を手元に1枚の記録として刻むこと」。まだ手元だけの出来事だ、という点まで言えれば十分です。
Q3. clone で何が起きた?
例:「共有リポジトリ(リモート)を、履歴ごとまるごと手元(ローカル)へ複製して受け取った。手元に来たのはコピーなので、いくら触っても本家は壊れない」。
Q4. ホームフォルダで `git status` を打つと、なぜ「リポジトリではない」と出た?
例:「Git が効くのは .git(保管庫)のあるフォルダの中だけ。ホームには .git が無いから。.git のある fde-dojo の中なら、ちゃんと動く」。
Q5. あなたの名前とメールは、どこに保存された?
例:「git config --global で登録し、ホームの ~/.gitconfig というテキストファイルに書かれた。このパソコンのあなた全体に効く設定」。
push・pull・ブランチ・マージ・HEAD は、今日は「名前だけ」でした。これらは第6章(と push の認証は第3章)で、実際に手を動かして学びます。今、説明できなくて大丈夫です。
まとめ
前半のイメージは覚え込まなくて大丈夫です。次の地図がなんとなく浮かび、道具がそろっていれば十分です。
- コミット=手元で記録を刻む。push して初めて共有(リモート)に出る、という対比がイメージできた
-
git --versionでgit version+ 数字が表示される(インストール完了) -
git configで名前・メール・エディタを登録した(git config --list --show-originで確認できた) -
git cloneで~/fde-dojoを受け取り、git remote -vでoriginを確認できた -
workspace/ch0/setup-notes.mdに、このレッスンの気づきを1行書いた
この地図と道具があれば、この先の章がずっと分かりやすくなります。今日はここで区切ってOKです。再開するときは、ターミナルを開いて cd ~/fde-dojo から始めてください。
よくある詰まり
| 症状 | 原因と対処 |
|---|---|
xcode-select --install が失敗する/「すでにインストール済み」と出る | 「すでに…」は成功の一種です。git --version で数字が出れば、それでOKです。途中で失敗したら、ネットワークを確認してから、もう一度同じコマンドを打ってください |
| (Windows)インストーラーの選択肢が多くて不安 | 判断が必要なのは本文の表の3つ(エディタ・改行・PATH)だけです。それ以外は初期選択のまま「Next」で構いません。既定エディタで Vim だけは選ばないでください |
インストールしたのに git: command not found | ターミナルをいったん閉じて開き直してください(PATH の読み直し)。プログラム本体はあっても、シェルの探し場所リストがまだ更新されていないことが多いためです |
git clone が Permission denied や could not resolve host で失敗 | まず URL の打ち間違いを確認します(コピー&ペースト推奨)。次にネットワークです。社内ネットワークではプロキシ設定が必要な場合があります |
git clone <コピーしたURL> を、山カッコごとそのまま打ってしまった | < と > は差し込みの目印で、打ちません。<コピーしたURL> の部分を、コピーした本物の URL に置き換えて打ち直してください |
| clone のとき、ユーザー名やパスワードを聞かれた | この教材が公開(public)で配布されている場合、読み取り clone に認証は不要です。聞かれたら、まず URL を見直してください。認証をともなう push は、第3章で扱います |
| クローン先を間違えた(変な場所に fde-dojo ができた) | 壊れてはいません。フォルダ画面(Finder / エクスプローラー)で fde-dojo をホームフォルダへ移動すればOKです |
次は レッスン04 AIとは何か(LLMとその仲間) へ。道具を動かす前に、そもそも AI とは何か、なぜこの教材が Claude を使うのかを知っておきましょう。
最終確認日: 2026-07-24