Gitの基本操作で変更履歴を記録しよう
更新日:2026-08-02
前の記事ではGitをインストールし、Git BashとWSLのUbuntuの違いを確認しました。今回は、WSL上の~/sandboxに練習用プロジェクトを作り、Gitで変更履歴を記録します。
コミットは、作業の区切りでファイルの状態と説明を記録するものです。こまめにコミットすると、何を変更したのか確認しやすくなります。
今回使用するファイル構成
sandbox/
└── git-practice/
├── .gitignore
└── index.html
Gitの利用者情報を設定する
Gitは、誰がコミットしたかを名前とメールアドレスで記録します。WSLのUbuntuターミナルで、自分の情報を設定します。
git config --global user.name "自分の名前"
git config --global user.email "自分のメールアドレス"
設定内容を確認します。
git config --global --list
この情報はコミット履歴に記録されます。将来GitHubへ公開する場合は、公開してよいメールアドレスか、GitHubが提供する非公開用メールアドレスを使用します。
練習用プロジェクトを作る
mkdir -p ~/sandbox/git-practice
cd ~/sandbox/git-practice
touch index.html
code .
VS Code内のターミナルでも現在位置を確認します。
pwd
/home/ユーザー名/sandbox/git-practiceのように表示されることを確認します。
git initで管理を開始する
git init
git initは、現在のディレクトリでGitによる管理を開始するコマンドです。内部には.gitディレクトリが作られます。
ls -la
.gitには履歴や設定が保存されます。通常は中のファイルを直接編集しません。また、プロジェクトの親ディレクトリなど、意図していない場所でgit initを実行しないよう、先にpwdを確認します。
git statusで状態を確認する
git status
index.htmlが未追跡のファイルとして表示されます。未追跡とは、まだGitの記録対象として追加されていない状態です。
git statusは何度実行してもファイルを変更しません。操作の前後に現在の状態を確認する習慣を付けます。
git diffで変更内容を確認する
index.htmlへ次の内容を記述して保存します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Gitの練習</title>
</head>
<body>
<h1>最初のコミット</h1>
</body>
</html>
git diff
git diffは、まだステージへ追加していない変更を表示します。ただし、未追跡ファイルの内容は通常のgit diffには表示されないため、最初はgit statusとVS Codeの編集内容も確認します。
git addでコミット候補へ追加する
git add index.html
git status
git addは、次のコミットへ含める変更をステージへ追加します。コミットそのものはまだ作成されていません。
ステージへ追加した内容は次のコマンドで確認できます。
git diff --staged
git commitで作業の区切りを記録する
git commit -m "最初のHTMLを追加"
-mの後ろには、何を変更したか分かる短いメッセージを書きます。コミットは「完成品だけを保存する操作」ではなく、意味のある作業の区切りを記録する操作です。
git status
git log --oneline
作業ツリーが変更なしの状態になり、履歴にコミットが表示されれば成功です。
2回目の変更を記録する
index.htmlのbody内へ段落を追加して保存します。
<p>Gitで変更履歴を管理しています。</p>
変更からコミットまでを順番に確認します。
git status
git diff
git add index.html
git diff --staged
git commit -m "Gitの説明文を追加"
git log --oneline
基本の流れは「変更する、確認する、追加する、コミットする」です。
.gitignoreで記録しないファイルを指定する
プロジェクトには、Gitで管理しないファイルもあります。.gitignoreは、記録対象から除外するパターンを書くファイルです。
.gitignoreを作り、次の内容を記述します。
.env
node_modules/
vendor/
.envはパスワードやAPIキーなどの秘密情報を置くことがある設定ファイルです。node_modulesやvendorは、パッケージ管理ツールで再作成できる大量の依存ファイルです。
.gitignore自体はプロジェクトのルールとして記録します。
git add .gitignore
git commit -m "Gitの除外設定を追加"
パスワードや.envをコミットしない
パスワード、APIキー、秘密鍵などはGitへコミットしてはいけません。GitHubへ公開していなくても、コミットした情報は履歴に残ります。
.envを作る前に.gitignoreへ追加するgit statusとgit diff --stagedでコミット内容を確認する- パスワードや秘密鍵をソースコードへ直接書かない
- 誤って秘密情報をコミットした場合は、履歴から消すだけでなく、その情報を直ちに無効化・再発行する
.gitignoreは、すでにGitで管理しているファイルを自動的に履歴から消すものではありません。最初のコミットより前に除外設定を準備するのが安全です。
今後学ぶGitとGitHubの機能
今回は、一人で変更履歴を記録するための最小限の操作を扱いました。次の機能は、PHPの基本演習後や共同開発を始める前に学びます。
- ブランチを作って作業を分ける
- マージで変更を統合する
- 競合を確認して解決する
- GitHubへリポジトリを作成して送信する
- Pull Requestで変更内容を確認してから統合する
- 履歴の取り消しや修正を安全に行う
履歴を大きく書き換えるコマンドは、意味を理解してから使用します。
まとめ
git initで現在のディレクトリをGitの管理対象にするgit statusで状態、git diffで変更内容を確認するgit addでコミット候補へ追加し、git commitで作業の区切りを記録する.gitignoreで秘密情報や再作成できるファイルを除外する- パスワード、APIキー、
.envをコミットしない - ブランチ、マージ、競合、Pull Requestは基本操作に慣れてから学ぶ
次の記事では、PHPやMySQLをコンテナで動かすDockerの基本概念を学びます。