メインコンテンツへスキップ
レッスン 6 / 15推定時間: 20

履歴の確認(git log/status)

過去の変更履歴と現在の作業状態を把握する方法を学びましょう

このレッスンの学習目標

  • 過去にどんな変更をしたか確認できる
  • 現在の作業状況を正確に把握できる
  • 様々なオプションを使って必要な情報を取得できる

困りごと:過去の変更を思い出せない

🤔 こんな経験ありませんか?

  • 「いつこの機能を追加したんだっけ?」
  • 「さっき何を変更したか忘れた...」
  • 「今の作業状況がよく分からない」

Gitには、過去の履歴と現在の状態を確認する便利なコマンドがあります!

git status - 現在の状態を確認

git statusは、現在の作業状況を一目で把握できる最も重要なコマンドです。

実践:様々な状態を確認

# プロジェクトを作成
mkdir status-demo
cd status-demo
git init

# 初期状態を確認
git status

状態1:新しいファイルがある場合

# ファイルを作成
echo "Hello Git" > hello.txt
echo "README" > README.md

# 状態を確認
git status

「Untracked files」として表示されます。

状態2:ステージングエリアに追加後

git add hello.txt
git status

「Changes to be committed」に移動しました!

状態3:コミット後の変更

# コミット
git add README.md
git commit -m "初回コミット"

# ファイルを変更
echo "World" >> hello.txt

# 状態を確認
git status

「modified」として表示されます。

git statusの便利なオプション

簡潔な表示(-s / --short)

# 様々な状態のファイルを作成
echo "new file" > new.txt
echo "staged" > staged.txt
git add staged.txt
echo "modified" >> hello.txt

# 通常の表示
git status

# 簡潔な表示
git status -s

記号の意味:

  • ?? = 未追跡(Untracked)
  • A = 追加予定(Added)
  • M = 変更あり(Modified)
  • M = 変更をステージング

git log - 履歴をたどる

git logは、過去のコミット履歴を確認するコマンドです。

基本的な使い方

# いくつかコミットを作成
echo "function add(a, b) { return a + b; }" > math.js
git add math.js
git commit -m "feat: 足し算関数を追加"

echo "function subtract(a, b) { return a - b; }" >> math.js
git add math.js
git commit -m "feat: 引き算関数を追加"

echo "function multiply(a, b) { return a * b; }" >> math.js
git add math.js
git commit -m "feat: 掛け算関数を追加"

# 履歴を確認
git log

git logの便利なオプション

1. 一行表示(--oneline)

git log --oneline

コミット一覧がコンパクトに!

2. グラフ表示(--graph)

git log --oneline --graph

ブランチの分岐やマージが視覚的に分かる!

3. 最近のn件だけ表示(-n)

# 最近の3件だけ表示
git log -3

# または
git log --oneline -5

4. 特定の作者のコミットを検索

# 作者名でフィルタリング
git log --author="あなたの名前"

5. 日付でフィルタリング

# 今日のコミット
git log --since="today"

# 今週のコミット
git log --since="1 week ago"

# 特定の日付範囲
git log --since="2024-01-01" --until="2024-01-31"

6. 変更内容も表示(-p)

# 各コミットの差分も表示
git log -p -2

7. ファイル名で検索

# 特定のファイルの履歴だけ表示
git log -- math.js

# ファイル名の一覧も表示
git log --name-only

git show - 特定のコミットを詳細表示

# 最新のコミットを詳細表示
git show

# 特定のコミットを表示(コミットIDの最初の数文字でOK)
git log --oneline -3
# 上で表示されたコミットIDを使って
# git show abc1234

実践的な使い方

シナリオ1:作業前の確認

# 現在の状態を確認
git status

# 最近の履歴を確認
git log --oneline -5

# 作業開始!

シナリオ2:コミット前の最終確認

# 何を変更したか確認
git status

# 差分を確認
git diff

# ステージングエリアの差分を確認
git diff --staged

シナリオ3:特定の変更を探す

# コミットメッセージで検索
git log --grep="バグ修正"

# コードの変更内容で検索
git log -S "function add"

エイリアスで効率化

よく使うコマンドにエイリアスを設定:

# エイリアスを設定
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph"

# 使ってみる
git st
git lg

トラブルシューティング

Q: git logが長すぎて読めない

A: スペースキーでページ送り、qで終了

Q: コミットIDが長すぎる

A: 最初の4〜7文字だけでOK

git show abc1234  # フルIDじゃなくてOK

Q: 日本語が文字化けする

A: 以下の設定で解決

git config --global core.quotepath false

まとめ

履歴と状態の確認方法を学びました!

  • git statusで現在の作業状況を把握
  • git logで過去の変更履歴を確認
  • ✅ 様々なオプションで必要な情報を絞り込み
  • ✅ エイリアスで作業を効率化

重要:

  • 作業前にgit status
  • コミット前にgit status
  • 迷ったらgit status

次のレッスンでは、間違えた変更を取り消す方法を学びます!

【実践演習】履歴と状態の確認

実際にプロジェクトを作成して、様々な状態と履歴の確認方法を練習しましょう。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

練習課題

  1. git status -sで簡潔な状態表示を確認
  2. git log --onelineでコミット履歴を簡潔表示
  3. git log --grep="feat"で機能追加のコミットを検索
  4. git showで最新のコミットの詳細を確認
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行