0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git入門】第5章 履歴を見る・元に戻す(TortoiseGit)

0
Last updated at Posted at 2026-11-02

この章では、これまでのコミット(履歴)を見て、それぞれのコミットで何を変えたかを確かめます。そのうえで、まだコミットしていない変更を取り消す方法と、コミットした変更を打ち消す方法を学びます。

この章で学ぶこと

  • 履歴の見方と、コミットごとの差分の見方
  • まだコミットしていない変更を取り消す方法
  • コミットした変更を打ち消す方法(リバート)

5.1 履歴を見る

  1. リポジトリのフォルダーを右クリックし、TortoiseGit → ログを表示 を選びます。

  2. ログの画面が表示されます。上の一覧に、これまでのコミットが新しい順に並んでいます。次の4つのコミットがあることを確かめます。

    ログの画面。コミットの一覧と、選んだコミットのメッセージと変更したファイル
    図5-1 ログの画面(赤枠:コミットの一覧と、変更したファイル)

    メッセージ コミットした章
    社員一覧に日付を追加 第4章 4.4
    トップページに説明を追加 第4章 4.4
    社員一覧に田中 美咲を追加 第4章 4.3
    最初のコミット 第3章
  3. 一覧の「社員一覧に田中 美咲を追加」をクリックします。画面の真ん中にコミットメッセージ、下にそのコミットで変更したファイル(git/list.html)が表示されます。

  4. 下の git/list.html をダブルクリックします。差分の画面が開き、このコミットで書き足した5行が表示されます。確かめたら、差分の画面を閉じます。

一覧の各行には、コミットメッセージのほかに、作者(第2章で設定した名前)と日時が表示されています。コミットごとの ID は、コミットを選んだときに画面の真ん中の「SHA-1:」の後ろに表示される、英数字の長い番号です。一覧のいちばん上の「作業ツリーの変更」の行は、まだコミットしていない変更を表す行で、コミットではありません。

【便利な使い方】1つのファイルの履歴だけを見る

ファイルを右クリックして TortoiseGit → ログを表示 を選ぶと、そのファイルを変更したコミットだけが表示されます。あるファイルが、いつ・誰に・なぜ変えられたのかを調べるときに使います。

5.2 まだコミットしていない変更を取り消す

ファイルを直している途中で、直した内容をやめて、最後のコミットの状態に戻したいことがあります。ここでは、わざと間違った変更をして、取り消してみます。

  1. git/list.html を開き、4人目(田中 美咲)の <tr> から </tr> までの5行を消して、保存します。

  2. git/list.html を右クリックし、TortoiseGit → 差分 を選んで、5行が消えたことを差分で確かめます。差分の画面を閉じます。

  3. git/list.html を右クリックし、TortoiseGit → 変更の取り消し を選びます。

  4. 「変更の取り消し」の画面のファイルの一覧で、git/list.html にチェックが入っていることを確かめて、「OK」をクリックします。

    変更の取り消しの画面。git/list.html にチェック
    図5-2 変更の取り消しの画面(赤枠:ファイルと OK)

  5. git/list.html を開き直し、田中 美咲の行が戻っていることを確かめます。アイコンの印は緑のチェックに戻ります。

【ご注意】取り消した変更は戻せない

「変更の取り消し」で取り消した変更は、コミットしていないので、Git の記録にも残っていません。取り消した後で「やはり必要だった」と思っても、取り戻せません。取り消す前に、差分を見て、本当に要らない変更かを確かめてください。

【ご注意】ファイルを開いたままにしない

メモ帳や Eclipse でファイルを開いたまま「変更の取り消し」をすると、エディターの画面には古い内容が残ります。そのまま保存すると、取り消した変更がもう一度書き込まれます。「変更の取り消し」の後は、ファイルを開き直してください(Eclipse では、プロジェクトを右クリックして「リフレッシュ」を選びます)。

5.3 コミットした変更を打ち消す(リバート)

第4章の「社員一覧に日付を追加」のコミットで書き足した日付の行が、要らなくなったとします。コミットした変更を取り消すには、その変更を打ち消すための新しいコミットを作ります。これを リバート(revert)といいます。

  1. リポジトリのフォルダーを右クリックし、TortoiseGit → ログを表示 を選びます。

  2. 一覧の「社員一覧に日付を追加」を右クリックし、「このコミットの変更を戻す」を選びます。

    ログの画面の右クリックのメニュー。このコミットの変更を戻す
    図5-3 ログの右クリックのメニュー(赤枠:このコミットの変更を戻す)

  3. 「選択したコミットの変更を取り消しますか?」と聞かれるので、「はい」をクリックします。

  4. 「リビジョンが取り消されました。変更はすべてワーキングツリーに今統合されました。」と表示されます。この時点では、打ち消しの変更が作業フォルダーに入っただけで、まだコミットされていません。「コミット」をクリックします。

    リビジョンが取り消されましたと表示され、OK とコミットのボタンがある
    図5-4 打ち消しの変更ができたことを知らせる画面(赤枠:コミット)

  5. コミットの画面が表示されます。メッセージに Revert "社員一覧に日付を追加" と、打ち消したコミットの ID が入っていることを確かめて、「コミット」をクリックします。結果の画面を閉じます。

    コミットの画面。メッセージに Revert 社員一覧に日付を追加
    図5-5 打ち消しのコミットの画面(赤枠:メッセージとコミット)

  6. ログの画面を開き直し、いちばん上に Revert "社員一覧に日付を追加" のコミットができたことを確かめます。

  7. git/list.html を開き、「2026年10月現在」の行が無くなっていることを確かめます。

5.4 解説:打ち消しのコミットを作る理由

リバートでは、「社員一覧に日付を追加」のコミットは消えずに残り、その後ろに、日付の行を消すコミットが1つ増えます。履歴は次のようになります。

リバートした後の履歴(新しい順)
Revert "社員一覧に日付を追加"    ← 日付の行を消すコミット(新しく増えた)
社員一覧に日付を追加              ← 日付の行を足したコミット(残っている)
トップページに説明を追加
社員一覧に田中 美咲を追加
最初のコミット

コミットを消すのではなく、打ち消しのコミットを足すのには、次の理由があります。

  • 「いつ足して、いつ・なぜやめたのか」が履歴に残る
  • 第6章からは、コミットを GitHub に送り、ほかの人も同じ履歴を持つようになる。ほかの人が持っている履歴からコミットを消すと、履歴が食い違ってしまう。打ち消しのコミットを足すだけなら、ほかの人もそのコミットを取り込むだけで済む

【知識メモ】履歴からコミットを消す方法もある

Git には、コミットそのものを履歴から消す方法(リセット)もあります。ただし、ほかの人と共有した履歴で使うと、上の理由で問題が起きます。この教材では、コミットした変更を取り消すときはリバートを使います。リセットの扱いは第11章で説明します。

5.5 うまくいかないときは

症状 考えられる原因と対処
ログの画面に、コミットが全部表示されない ファイルを右クリックしてログを開くと、そのファイルを変更したコミットだけが表示されます。リポジトリのフォルダーを右クリックして開いてください。
「変更の取り消し」をしたのに、ファイルの内容が変わらない エディターでファイルを開いたままになっています。ファイルを開き直してください(5.2)。
リバートしようとすると、コミットしていない変更があると表示される まだコミットしていない変更があると、リバートできません。変更をコミットするか、要らない変更なら「変更の取り消し」で取り消してから、リバートします。
リバートで、コンフリクト(競合)が起きたと表示される 打ち消そうとしたコミットの後に、同じ行を変えたコミットがあります。直し方は第9章で説明します。練習で起きた場合は、ログの画面で、いちばん新しいコミットからリバートしてください。

そのほかのエラーは、付録B「よくあるエラーと対処法」を見てください。

5.6 まとめと確認問題

まとめ

  • TortoiseGit →「ログを表示」で履歴を見る。コミットを選ぶと、変更したファイルと差分を見られる
  • まだコミットしていない変更は、TortoiseGit →「変更の取り消し」で、最後のコミットの状態に戻す。取り消した変更は戻せない
  • コミットした変更は、ログの画面で「このコミットの変更を戻す」を選び、打ち消しのコミットを作る(リバート)
  • リバートでは元のコミットは消えない。いつ・なぜやめたのかが残り、ほかの人と共有した履歴とも食い違わない

確認問題

問1 まだコミットしていない変更を「変更の取り消し」で取り消した後、その変更を取り戻せますか。

解答を見る

取り戻せません。コミットしていない変更は Git の記録に残っていないためです。取り消す前に、差分を見て本当に要らない変更かを確かめます。

問2 「社員一覧に日付を追加」のコミットをリバートすると、そのコミットは履歴から消えますか。

解答を見る

消えません。そのコミットは残ったまま、日付の行を消すための新しいコミット(打ち消しのコミット)が履歴に増えます。

問3 コミットした変更を取り消すときに、コミットを消すのではなく、打ち消しのコミットを足すのはなぜですか。理由を1つ答えてください。

解答を見る

「いつ足して、いつ・なぜやめたのか」が履歴に残るためです。また、ほかの人と共有した履歴からコミットを消すと履歴が食い違いますが、打ち消しのコミットを足すだけなら、ほかの人もそれを取り込むだけで済むためです。


前へ

第4章 変更を記録する(コミット)(TortoiseGit)

次へ

第6章 GitHub にあげる(プッシュ)(TortoiseGit)

目次へ

【Git入門】目次

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?