Git の準備と初めての commit——リポジトリ・ステージ・コミット
レッスン2:Git の準備と初めての commit——リポジトリ・ステージ・コミット
このレッスンで学ぶこと
- Git のインストール方法を OS 別に把握する
- 初期設定(user.name、user.email)を整える
- リポジトリの初期化(git init)を理解する
- 3 ステージモデル(作業ディレクトリ・ステージ・リポジトリ)を腹落ちさせる
- ファイルのステージング(git add)とコミット(git commit)の意味を区別する
- 状態確認(git status)と差分確認(git diff)と履歴確認(git log)を使える
前のレッスンでは、バージョン管理の必要性と Git・GitHub の違いを整理しました。今回のレッスンでは、いよいよ Git に手を動かしていきます。インストールから初めての commit までを、3 ステージモデルとともに体感していただきます。
Git のインストール
Git は無料のオープンソースソフトウェアで、Windows・macOS・Linux すべてに対応しています。
Windows の場合
公式サイト(https://git-scm.com/)から「Git for Windows」をダウンロードしてインストールします。インストーラの選択肢が多く、初心者には迷うかもしれません。基本は「デフォルト設定のまま進む」で問題ありません。
特に押さえておきたい設定:
- デフォルトエディタ:Visual Studio Code(VS Code)をインストール済みなら推奨
- 改行コード(line endings):「Checkout Windows-style, commit Unix-style line endings」が無難
- 認証方法:「Git Credential Manager」を推奨
インストール後、「Git Bash」というターミナルが使えるようになります。本コースではこの Git Bash を使う前提で説明します。
macOS の場合
Homebrew をインストールしている方は、ターミナルで次のコマンドを実行します。
brew install git
Homebrew がない方は、Xcode Command Line Tools のインストールでも Git が手に入ります。
xcode-select --install
macOS の標準ターミナル(Terminal.app)で作業します。
Linux の場合
ディストリビューションのパッケージマネージャーを使います。
# Ubuntu / Debian
sudo apt install git
# RHEL / Fedora
sudo dnf install git
インストール確認
インストール後、ターミナル(Git Bash/Terminal.app)で次のコマンドを実行します。
git --version
git version 2.x.x のような出力が出れば、インストール成功です。
💡 ポイント 2026 年 6 月時点の Git の最新版は 2.45 以降ですが、本コースの内容は古い 2.30 以降でも動きます。バージョンに過度にこだわらず、まず触ってみましょう。
初期設定——user.name と user.email
Git をインストールしたら、最初に「自分が誰か」を Git に教えます。これは、commit に「誰がこの変更を作ったか」を記録するためです。
git config --global user.name "Taro Yamada"
git config --global user.email "taro@example.com"
--global を付けると、PC 全体のすべての Git リポジトリで共通の設定になります。
確認
設定が反映されたかは、次のコマンドで確認します。
git config --global --list
user.name=Taro Yamada と user.email=taro@example.com が出力されれば OK です。
メールアドレスの選び方
- 個人利用:自分の通常のメールアドレス
- GitHub と連携する場合:GitHub に登録するメールアドレスと合わせるのが推奨
- 公開リポジトリでメールアドレスを隠したい場合:GitHub の「noreply」アドレス(後述の方法で取得)
⚠️ 注意 設定したメールアドレスは、コミット履歴に記録されます。公開リポジトリで作業する場合、メールアドレスの公開可否を意識して選んでください。
リポジトリの初期化——git init
Git で管理するためのフォルダを「リポジトリ(repository)」と呼びます。リポジトリは、ファイルの本体に加えて、Git の履歴情報を持つフォルダです。
新規リポジトリの作成手順
- 管理したいフォルダに移動
git initを実行
# 例:新しいプロジェクト用のフォルダを作って初期化
mkdir my-project
cd my-project
git init
Initialized empty Git repository in /path/to/my-project/.git/ のようなメッセージが出れば成功です。
.git フォルダの正体
git init の実行後、フォルダの中に .git という隠しフォルダが作られます。この中に Git の履歴情報がすべて入ります。
.gitを削除すると、リポジトリではなくなる(履歴も消える).gitの中身を直接編集する必要は、初心者の段階ではない.gitの存在で、Git はそのフォルダを「リポジトリ」として認識する
既存フォルダで初期化する場合
既に作業中のフォルダで git init を実行しても問題ありません。中のファイルはそのままで、Git の管理対象になります。
📝 補足 Git Bash や macOS のターミナルでは、
ls -laでフォルダの中身を表示すると、.gitの存在が確認できます。Windows のエクスプローラでは「隠しファイルを表示」をオンにする必要があります。
3 ステージモデル
ここから本レッスンの中核に入ります。Git の最大の特徴の 1 つが、「3 つのステージを持つ」モデルです。
[作業ディレクトリ] → [ステージ] → [リポジトリ]
(編集中) (準備中) (履歴に保存)
3 つのステージ
| ステージ | 別名 | 状態 |
|---|---|---|
| 作業ディレクトリ | working directory、working tree | ファイルを編集している場所 |
| ステージ | staging area、index | 次の commit に含める変更の置き場 |
| リポジトリ | repository | commit された履歴の本体 |
なぜ 3 段階なのか
「編集」→「commit」を直接行うなら 2 段階でよさそうですが、Git は中間に「ステージ」を置いています。理由は、
- 関連する変更だけをまとめて 1 つの commit にできる
- 「コードの変更」と「ドキュメントの変更」を別の commit に分けられる
- commit する前に「何を含めるか」を確認できる
ためです。最初は冗長に感じるかもしれませんが、慣れると非常に便利な設計です。
コマンドとステージの対応
git add:作業ディレクトリ → ステージgit commit:ステージ → リポジトリgit restore --staged <file>:ステージから取り消す(古い書き方はgit reset HEAD)git restore <file>:作業ディレクトリの変更を捨てる(古い書き方はgit checkout)
💡 ポイント 3 ステージモデルは、Git で最も重要な概念です。「いま自分のファイルはどのステージにあるか」を常に意識する習慣を持つと、Git で迷子になりにくくなります。
初めての commit——実践
それでは、実際に最初の commit を作ってみましょう。
ステップ 1:ファイルを作る
リポジトリのフォルダで、何かファイルを作ります。Markdown ファイルを例にします。
echo "# My Project" > README.md
このコマンドで、README.md というファイルが作られ、「# My Project」という 1 行が書かれます。
ステップ 2:状態確認(git status)
ここで、Git に「現在の状態」を聞きます。
git status
次のような出力が出ます。
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
「README.md は『追跡されていないファイル(untracked)』として認識されている」という意味です。
💡 ポイント
git statusは、Git で最も使うコマンドの 1 つです。「いま自分はどこにいるか」を確認するために、迷ったらgit statusと覚えてください。
ステップ 3:ステージに上げる(git add)
README.md をステージに上げます。
git add README.md
再度 git status を実行すると、
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
「commit に含める変更(changes to be committed)」として認識されました。
ステップ 4:commit する
ステージにある変更を、リポジトリに記録します。
git commit -m "Add README"
-m の後の文字列が「コミットメッセージ」です。後から「何を変えたか」を思い出すための説明文です。
実行すると、
[main (root-commit) abc1234] Add README
1 file changed, 1 insertion(+)
create mode 100644 README.md
のようなメッセージが出れば、commit 成功です。
ステップ 5:履歴確認(git log)
履歴を確認します。
git log
commit abc1234...(長い文字列)
Author: Taro Yamada <taro@example.com>
Date: Thu Jun 19 10:30:00 2026 +0900
Add README
おめでとうございます。これが Git での「初めての commit」です。
📝 補足 commit のハッシュ値(abc1234... の部分)は、SHA-1 ハッシュという仕組みで生成された一意な識別子です。本コースでは概念として触れるだけで深掘りはしません。
差分確認——git diff
ファイルを編集したら、その変更内容を git diff で確認できます。
編集前後の差分を見る
README.md を編集してみます。
echo "" >> README.md
echo "This is my first Git project." >> README.md
git diff を実行すると、
diff --git a/README.md b/README.md
index abc1234..def5678 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
# My Project
+
+This is my first Git project.
+ が「追加された行」、- が「削除された行」です。
ステージとの差分
git add README.md でステージに上げた後、ステージとリポジトリの差分を見るには:
git diff --staged
git diff(オプションなし)は「作業ディレクトリとステージの差分」、--staged は「ステージとリポジトリの差分」を表示します。
履歴間の差分
commit 同士の差分も確認できます。
git diff abc1234..def5678
「abc1234 から def5678 への変更」を表示します。
💡 ポイント
git diffを使うと、commit する前に「自分は何を変えたか」を確認できます。「思いがけないファイルを変更していた」を防ぐためにも、git addの前にgit diffを眺める習慣を持ちましょう。
よくある操作の組み合わせ
実務で繰り返し行う操作の組み合わせを紹介します。
「変更したファイルを 1 つ commit する」
# 何を変えたか確認
git status
git diff
# ステージに上げる
git add ファイル名
# 確認
git diff --staged
# commit する
git commit -m "コミットメッセージ"
# 履歴確認
git log
「すべての変更をまとめて commit する」
git add .
git commit -m "コミットメッセージ"
git add . は「現在のフォルダ以下のすべての変更をステージに上げる」コマンドです。
「ステージから取り消す」
git restore --staged ファイル名
「作業ディレクトリの変更を捨てる」
git restore ファイル名
⚠️ 注意
git restore ファイル名(--stagedなし)は、ファイルの変更を完全に捨てるコマンドです。間違って実行すると編集内容が消えるので、最初は慎重に。
講師の現場メモ:「3 ステージモデルがわかった瞬間に景色が変わった」
私(青木)が新卒で SaaS スタートアップに入社したばかりの頃、Git にずっと苦手意識がありました。先輩から「とりあえず git add . && git commit -m "..." && git push」と教わって、何度か繰り返しているうちに、
- 「あ、コミットメッセージ間違えた、どう直すんだ」
- 「ファイル add したけど、これは含めたくなかった」
- 「ステージにあるのか、リポジトリに入ったのか、わからない」
と混乱することが何度もありました。
ある日、先輩が「青木、Git は 3 段階あることを意識すると一気にわかるようになるよ。作業ディレクトリ、ステージ、リポジトリの 3 つを頭の中で絵にしてみて」とアドバイスをくれました。
私はその日、紙に図を描きました。
[作業ディレクトリ] →(git add)→ [ステージ] →(git commit)→ [リポジトリ]
それから、コマンドを使うときは「いまファイルはどのステージにあるか」「次のコマンドで、どのステージに移るか」を毎回意識するようになりました。1 週間で Git への苦手意識が消えました。
『Pro Git』(Scott Chacon と Ben Straub の名著)も、この 3 ステージモデルを核に据えています。本コースが 3 ステージモデルを丁寧に扱うのは、ここを掴むと Git のほかのコマンドが一気に意味を持つようになるからです。
コマンドを暗記する前に、自分の手元に紙とペンを置いて、3 つの箱を絵に描いてみてください。それが、Git を自分のものにする最初の一歩です。
まとめ
このレッスンでは、以下のことを学びました。
- Git は Windows・macOS・Linux すべてに対応。公式サイトまたはパッケージマネージャーでインストール
- 初期設定:
git config --global user.name/user.emailで自分が誰かを Git に教える - リポジトリの初期化:
git initで.gitフォルダが作られ、Git の管理対象になる - 3 ステージモデル:作業ディレクトリ → ステージ → リポジトリ
git status:いまどこにいるかを確認git add ファイル名:作業ディレクトリ → ステージgit commit -m "メッセージ":ステージ → リポジトリgit log:履歴を確認git diff:差分を確認(作業ディレクトリとステージ、ステージとリポジトリ、commit 同士)git restore --staged:ステージから取り消し、git restore:作業ディレクトリの変更を捨てる(注意)
次のレッスンでは、ブランチとマージで「分岐と合流」の発想を扱います。
確認クイズ
このレッスンの理解度をチェックしましょう。