履歴を見てみよう!log / diff / restore の基本を理解する【Git】

  • LINEで送る
履歴を見てみよう!log / diff / restore の基本を理解する

 Gitを使う大きなメリットのひとつが、変更の履歴をいつでも見返せること、そして間違った変更を取り消せることです。 この章では 「git log」、「git diff」、git restore の基本操作を紹介します。

git log:履歴を時系列で確認する

git log

 git log は、過去に行ったコミット(変更の記録)を時系列で確認するコマンドです。 変更の履歴をたどることで、プロジェクトの流れや変更の意図を把握できます。

  • 各コミットには、コミットID、作成者、日時、メッセージが表示されます。
  • 過去の状態に戻りたいときや、変更履歴をレビューしたいときに非常に便利です。
  • チーム開発では「誰が・いつ・なぜ」その変更を加えたのかを理解するのに役立ちます。

よく使うオプション:

git log --oneline
  • 各履歴を1行で簡潔に表示できるため、履歴の流れをざっと確認したいときに便利です。

 実際にlogで変更履歴を確認してみます。gitのプロジェクトフォルダで管理しているファイルを、何度か変更して「git add」して「git commit」で変更履歴を保存してみましょう。この例では「git-sample」フォルダに「memo.txt」を追加して、そのファイルの中身を何度か変更してみます。

「git log」で履歴を閲覧すると上記のように表示されます。黄色の文字列はコミットIDと言い、すべてのコミットで一意になる文字列です。「–online」オプションをつけたときにも黄色の文字のコミットIDが付いていますが、これは本来のフルコミットIDの先頭7桁が表示されます。先頭7桁だけでも十分に一意になる値です。同じような修正でもこのコミットIDが違えば、全く別のコミットとして認識されます。

💡コミットIDは正式には「コミットハッシュ」または「SHA-1ハッシュ」と言う。このコミットIDを利用して差分や履歴を管理する。


 (HEAD -> master)は現在のブランチが master で、HEAD(作業中の位置)もそこを指しているという意味です。

git diff:変更内容を比較する

git diff は、ファイルに加えた変更の「差分(違い)」を確認するためのコマンドです。

 Gitはファイルの変更前と変更後を記録していますが、git diff を使うことで、どの行が追加され、どの行が削除されたかを明確に見ることができます。

  • 作業中の変更内容を確認する際に便利です(まだ add していない状態)
  • 他人の変更や過去の変更内容をレビューするときにも活躍します
  • 「何を変えたか」が一目で分かるので、コミット前の確認にも最適です

よく使う使い方:

git diff memo.txt
  • 特定のファイルだけの差分を確認したいとき

add 後の変更を確認したいときは?

git diff --staged
  • ステージに追加された内容(git add 済み)と前回のコミットとの差分を表示します

💡 diff をこまめに使えば、意図しない変更をコミットするリスクを減らせます。コードの品質を保つためにも大切な確認ステップです。

 実際に差分を確認してみます。先ほど「git log」の説明で利用したフォルダとファイルを利用します。「memo.txt」内の文字列を適当に変更してみます。変更後、addやcommitはせずに「git diff memo.txt」を実行します。

おはようございます

このブログはtamotech.blogです
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓更新する「ブログ」を「サイト」に更新する
おはようございます

このサイトはtamotech.blogです

 「git diff momo.txt」でdiffを確認することができました。「— a/memo.txt」は更新前のファイルで「
+++ b/memo.txt」は更新後のファイルを意味しています。

git restore:変更を取り消す

git restore ファイル名

git restore は、作業中のファイルの変更を「最後に保存された状態」に戻すためのコマンドです。たとえば、ファイルをうっかり編集してしまったとき、「やっぱり元に戻したい」と思ったらこのコマンドで取り消すことができます。

  • git add をする前の変更を元に戻せます(ステージ前の状態)
  • 誤って編集してしまったときや、作業をやり直したいときに便利です
  • . を指定すれば、すべてのファイルの変更をまとめて取り消すこともできます

よく使う例:

git restore main.js

指定したファイルの編集内容だけを取り消します。

git restore .

カレントディレクトリ以下のすべての変更を取り消します。

⚠️ 注意:restore は元に戻せません。実行前に git diff でどのような変更があったか確認してから使うようにしましょう。

💡 「まだコミットしていない変更」にしか使えません。すでにコミットした内容を取り消したい場合は、別のコマンド(resetrevert)が必要です。

 実際にrestoreを使ってadd前の変更を取り消してみます。先ほどのmemo.txtを修正しようとしたら間違えて消してしまい、消える前のファイルの状態を忘れてしまったとしましょう。

おはようございます

このブログはtamotech.blogです

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓間違えて消してしまった!!
おはようございます

この

addする前に「git restore」を実行すると元のファイルの状態まで戻すことができます。↓

おはようございます

このブログはtamotech.blogです

まとめ

  • git log:変更履歴を一覧で確認できる
  • git diff:変更内容を比較して確認できる
  • git restore:変更を元の状態に戻せる(未コミットに限る)

目次

実務で使えるGit講座 ― 初心者から即戦力まで6ステップ TOP

第1部 Gitの導入と基礎知識

  1. Gitとは? なぜ必要か?
  2. Gitのインストールと初期設定
  3. 最初のGit操作:init / clone / status

第2部 基本操作とローカルでの履歴管理

  1. ファイルの変更を記録:add / commit
  2. 履歴の確認と変更の取り消し:log / diff / restore
  3. Gitの仕組みを理解する(ステージングエリアとは?)

第3部 ブランチとマージの基本

  1. ブランチの概念と作り方
  2. マージとコンフリクト解消
  3. Git Flow・開発ブランチ運用の基本

第4部 GitHubを使ったチーム開発

  1. リモート操作:push / pull / fetch
  2. GitHubとプルリクエストの流れ
  3. チーム運用でのルール作り

第5部 実務で差がつく応用操作

  1. 履歴の書き換え:rebase / amend / stash
  2. タグ・リリースとCI/CDの連携
  3. Gitトラブル対応集(reflog / resetハマり対策)

第6部 GitHub Copilotの活用術

  1. GitHub Copilotとは?できること・できないこと

最新の投稿

SNSでもご購読できます。

コメントを残す