本文へスキップ
スキルアップカレッジ

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 Yamadauser.email=taro@example.com が出力されれば OK です。

メールアドレスの選び方

  • 個人利用:自分の通常のメールアドレス
  • GitHub と連携する場合:GitHub に登録するメールアドレスと合わせるのが推奨
  • 公開リポジトリでメールアドレスを隠したい場合:GitHub の「noreply」アドレス(後述の方法で取得)

⚠️ 注意 設定したメールアドレスは、コミット履歴に記録されます。公開リポジトリで作業する場合、メールアドレスの公開可否を意識して選んでください。

リポジトリの初期化——git init

Git で管理するためのフォルダを「リポジトリ(repository)」と呼びます。リポジトリは、ファイルの本体に加えて、Git の履歴情報を持つフォルダです。

新規リポジトリの作成手順

  1. 管理したいフォルダに移動
  2. 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.nameuser.email で自分が誰かを Git に教える
  • リポジトリの初期化:git init.git フォルダが作られ、Git の管理対象になる
  • 3 ステージモデル:作業ディレクトリ → ステージ → リポジトリ
  • git status:いまどこにいるかを確認
  • git add ファイル名:作業ディレクトリ → ステージ
  • git commit -m "メッセージ":ステージ → リポジトリ
  • git log:履歴を確認
  • git diff:差分を確認(作業ディレクトリとステージ、ステージとリポジトリ、commit 同士)
  • git restore --staged:ステージから取り消し、git restore:作業ディレクトリの変更を捨てる(注意)

次のレッスンでは、ブランチマージで「分岐と合流」の発想を扱います。


確認クイズ

このレッスンの理解度をチェックしましょう。