前回に引き続き、無料の Git クライアントソフトウェア TortoiseGit で、前回、HEAD (現在のコミット位置を指す情報) を最新よりひとつ前のコミット位置(リビジョン)に移動した後に、ログに表示されなくなった最新のコミット位置を RefLog で表示して、最新のコミット位置に HEAD を戻す手順を紹介します。

※ TortoiseGit-2.17.0.2-64bit を使用します。
前回の記事
TortoiseGit のリセットメニューを使って、最新の3回目のコミット位置(リビジョン)から、1つ前の2回目のコミット位置に HEAD の参照先を移動しました。

これについては、以下の前々回の記事を参照してください。
その結果、HEAD 以前のコミットを表示するリビジョンログダイアログ(ログメッセージ)には、最新の3回目のコミットが表示されなくなりました。

これについては、前半は、以下の記事を参照してください。
HEAD を1つ前のコミット位置から最新のコミット位置に戻す
前回表示した RefLog ダイアログで、 HEAD の位置を 2 回目のコミットから、最新の 3 回目のコミット位置に戻します。
※エクスプローラで、リポジトリフォルダを右クリックして表示されるメニュー「TortoiseGit」→「RefLog を表示」を選択します。
TortoiseGit の RefLog ダイアログに表示された、最新の3回目のコミット履歴の行を右クリックして表示されるメニュー「”master” をここへリセット」を選択します。
※ master は使用しているブランチ名です。

表示された「リセット」ダイアログ(下図の右側)では、「現在のブランチのリセット」枠の HEAD の移動先に「コミット」ラジオボタンが選択されていて、そのコミットを指すハッシュ値 (SHA-1) も書かれています。
その右側の 「…」 ボタンを押すと、そのハッシュ値が指すコミットの情報を「リビジョンログ」ダイアログ(ログメッセージ)で確認できます。
ハッシュ値は、先ほど RefLog ダイアログで右クリックで選択した、最新の3回目のコミットを指していることが確認できました。
確認が済んだら、「リビジョンログ」ダイアログ(ログメッセージ)をキャンセルボタンで閉じます。

「リセット」ダイアログのコミットの確認が済んだら、「リセットの種類」枠で Soft ラジオボタン (git reset –soft オプションと同等)を選択して OK ボタンを押して、リセット (Soft) を実行します。

git reset --soft 3回目のコミットを指すハッシュ値
と同等のコマンドが実行されました。「閉じる」ボタンでダイアログを閉じます。

RefLog ダイアログを OK ボタンで閉じます。

リセット (Soft) による HEAD の変更の確認
HEAD (現在のコミット位置を指す情報)を、 RefLog ダイアログのリセットメニューを使って、2回目のコミット位置から、最新の3回目のコミット位置にリセット (Soft) で変更しました。
すでに、3回目のコミットの内容を持つ file.txt は、先ほどは HEAD が2回目のコミット位置を指していたため、差分で赤いマークが表示されていましたが、 HEAD が3回目のコミット位置に変更されたため、現在のコミット内容との差分がなくなり緑色のマークになっています。
エクスプローラで、リポジトリフォルダを右クリックして表示されるメニュー「TortoiseGit」→「ログを表示」で、「リビジョンログ(ログメッセージ)」ダイアログを表示して、ログを確認してみましょう。

前回は、 HEAD が2回目のコミット位置を指していたため、それ以前の2回目と1回目のコミット履歴しか表示されませんでした。
今回、RefLog ダイアログのリセット (Soft) メニューで HEAD を最新の3回目のコミット位置に変更した後は、3回目のコミット履歴も表示され、その3回目のコミットにブランチ名の赤枠も移動しています。
以上で HEAD が最新の3回目のコミット位置に戻ったことが確認できました。
確認が済んだら、OK ボタンで「リビジョンログ(ログメッセージ)」ダイアログを閉じます。

この結果は、git log –oneline でも確認できます。
※ Windows10 の場合、リポジトリのフォルダをエクスプローラで開いて、アドレスバーに cmd⏎ と入力すると、そこを作業ディレクトリにしてコマンドプロンプトを起動できます。

上から順に、最新の3回目、2回目、1回目のコミット履歴が表示されました。
また、最新の3回目のコミットの行には 「HEAD -> master」 と書かれていて、 HEAD が3回目のコミット位置を指していることも確認できます。
G:\Dev\StudyTortoiseGit\Repo1Soft>git log --oneline
fa795f0 (HEAD -> master) file.txt に 2 行目を追加
1f1f4dd file.txt に hello, world を追記。
e2829b8 file.txt をバージョン管理に追加します。
まとめ
全2話で、無料の Git クライアントソフトウェア TortoiseGit で、前回、HEAD (現在のコミット位置を指す情報) を最新よりひとつ前のコミット位置(リビジョン)に移動した後に、ログに表示されなくなった最新のコミット位置を RefLog で表示して、最新のコミット位置に HEAD を戻す手順を紹介しました。
参照サイト Thank You!
- Git
- TortoiseGit – Windows Shell Interface to Git
- Git – リセットコマンド詳説
- リビジョングラフ
- リビジョンログダイアログ
- Git – git-log Documentation
- Git – git-reset Documentation
- 【やっとわかった!】gitのHEAD^とHEAD~の違い #Git – Qiita
- Git – git-checkout Documentation
git reflog
についてまとめてみる
記事一覧 → Compota-Soft-Press
コメント