TortoiseGit ファイル内容の変更後の差分の確認と、その変更の取り消し

Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、Git で管理しているファイル内容を変更した際に、どの部分が変更されたかを変更前と変更後で、比較して確認する手順と、その変更内容を取り消す手順について紹介します。

変更内容の取り消しに対応していると考えられる git reset コマンドについても簡単に紹介します。

TortoiseGit ダウンロードとインストール1

TortoiseGit-2.17.0.2-64bit を使用します。

前回の記事

前回は、Git で管理外のファイルを、TortoiseGit でステージングエリアに追加した後コミットして、そのブランチ記録して、管理されるようにしました。

Git で管理しているファイルの内容の変更

ブランチにコミット済みの、作業ディレクトリのファイルの内容を変更してみましょう。
Git クライアントは、追跡対象のファイルの変更をすぐに検知して、表示します。

下図は、ゲームエンジン Godot Engine のエディタです。
このエディタ上で Git 管理しているファイルを編集すると、導入した Git plugin v3 バージョン管理アセットの「コミット」タブの「未ステージの変更」リストの中に黄色い文字色で「ファイル名(変更済み)」という形で変更されたことが表示されました。

TortoiseGit 別のブランチのファイルの取り込み(我流)13

同様に、エクスプローラのシェル拡張である TortoiseGit という別の Git クライアントソフトでも検知され、変更済みであることが表示されました。

TortoiseGit 別のブランチのファイルの取り込み(我流)14

差分の確認

変更が検知されたファイルの、現在のブランチのファイル内容と、作業ディレクトリのファイル内容差分を、エクスプローラの TortoiseGit を用いて、確認してみましょう。

変更が検知された赤色の!マークのついたアイコンのファイル選択して、右クリックで表示されるメニュー「TortoiseGit」→「差分」を選択します。

TortoiseGit ファイルの差分の確認と変更の取り消し1

ブランチにコミットされているファイル内容と、作業ツリー(作業ディレクトリ)のファイル内容の差分が TortoiseGitMerge アプリで表示されました。
※比較するアプリは「設定」ウィンドウの「差分ビューア」ページで変更できます。

TortoiseGit ファイルの差分の確認と変更の取り消し2

git reset について

TortoiseGit の「変更の取り消し」メニューに対応していると考えられる git reset コマンドについて先に紹介して、リセットの影響範囲について確認します。

git reset にはオプションをつけることで、3段階のリセットを行えます。
何も指定しない場合は、3段階までの全てのリセットが行われます。
※ TortoiseGit の既定の「変更の取り消し」はおそらく3段階までの全てのリセットだと思います。

今回のファイルの内容の変更を取り消す処理は、後述する3段階目で行われます。

reset コマンドを使うと、3つのツリーを以下の順で上書きしていきます。どこまで上書きするかはオプション次第です。

  1. HEAD が指し示すブランチを移動する (--soft オプションを使うと処理はここまで)
  2. インデックスの内容を HEAD と同じにする (--hard オプションを使わなければ処理はここまで)
  3. 作業ディレクトリの内容をインデックスと同じにする
Git – リセットコマンド詳説

1段階目は、現在のコミットの位置を、指定されたコミット位置(デフォルトでは HEAD の指すコミットの位置)に設定します。
これにより、Git 管理されているファイルが、指定されたコミットの内容に置き換わります。

2 段階目は、ステージングエリアに追加したファイルの除去を行います。 Git の状態を表す3つのツリーのひとつであるインデックスの内容を、指定したコミット位置のインデックスの内容と同じにします。
これにより、ワーキングツリーで変更して、次回のコミット対象としてステージングエリアに追加したファイルが、指定されたコミットのインデックスの内容に戻されます。

3段階目は、ワーキングツリー(作業ディレクトリ)のファイルなどの内容を、指定されたコミットに記録されている内容同じにします。
これにより、ワーキングツリーで行ったファイルへの編集が、指定されたコミットの内容に巻き戻されます。

変更の取り消し

変更した作業ディレクトリのファイルの内容を、ブランチに記録されている内容に戻して、変更を取り消します。

差分のある作業ディレクトリのファイル右クリックして表示されるメニュー「TortoiseGit」→「変更の取り消し」を選択します。

TortoiseGit ファイルの差分の確認と変更の取り消し3

「変更の取り消し」を行う対象のファイルの取捨選択を行うダイアログが表示されるので、変更を取り消すファイルだけチェックして OK ボタンを押します。
※前章で述べたように、変更の取り消しには、ファイル内容の変更、ステージングエリアへの追加などのリセットが含まれます。

TortoiseGit ファイルの差分の確認と変更の取り消し4

「変更の取り消し」が成功すると、ブランチにコミットされているファイルの内容に戻され差分がなくなり、ファイルのアイコンが赤から緑色に変わりました。
OK ボタンで閉じましょう。

TortoiseGit ファイルの差分の確認と変更の取り消し5

ファイル内容の変更の取り消しの確認

先ほどファイル内容を変更した、ゲームエンジン Godot Engineエディタアクティブにすると、ファイルが TortoiseGit によりリセットされたことにより、ファイルをより新しいものに変えるかを尋ねられます。

TortoiseGit ファイルの差分の確認と変更の取り消し6

「ローカルの変更を破棄してリロード」ボタンを押すと、変更が取り消された状態のファイルの内容が表示されました。

TortoiseGit ファイルの差分の確認と変更の取り消し7

「変更の取り消し」を行った後に、新たにテキストエディタなどで開いた場合は、このような確認は行われず、すぐに変更が取り消された状態のファイル表示されます。

まとめ

今回は、Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、Git で管理しているファイル内容を変更した際に、どの部分が変更されたかを変更前と変更後で、比較して確認する手順と、その変更内容を取り消す手順について紹介しました。

変更内容の取り消しに対応していると考えられる git reset コマンドについても簡単に紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました