TortoiseGit RefLogでHEADを最新リビジョンに戻す手順1/2

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

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

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

前回の記事

前回は TortoiseGit で git reset –soft HEAD~ コマンドと同様の処理を行うリセットメニューを実行して、前後で、コミット履歴の確認をしました。

前回行った部分までを念のためフォルダごとコピーしてから、今回の作業を行います

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認2

log と RefLog の違い

git log コマンドではコミット位置を指定しないと、HEAD が指す現在のコミット位置からさかのぼれるコミット履歴を表示するためです。

List commits that are reachable by following the parent links from the given commit(s), but exclude commits that are reachable from the one(s) given with a ^ in front of them. The output is given in reverse chronological order by default.

指定されたコミットから親リンクをたどることで到達可能なコミットをリストしますが、先頭に ^ を付けて指定されたコミットから到達可能なコミットは除外します。デフォルトでは、出力は新しい順に表示されます。
Git – git-log Documentation と Google 翻訳

git reflog コマンドや、 git log –reflog で確認できる reflog は、 HEAD やブランチ先端の動きの履歴です。
前回行った HEAD (現在のコミット位置)を1つ前のコミット位置に戻した履歴も、その前にコミットして最新のコミット位置を HEAD が参照していた履歴も確認できます。

This command manages the information recorded in the reflogs.

このコマンドは、reflog に記録された情報を管理します。
Git – git-reflog Documentation
  • reflog(参照ログ)とは HEAD やブランチ先端の動きの履歴
    • 各個人のローカルリポジトリに存在
    • ブランチの切り替え、新たに加えられた変更のプル、履歴の書き換え、あるいは単なる新規コミットの実行などを記録
git reflog についてまとめてみる

実際にコマンドプロンプトを開いて git log –reflog コマンドを実行して確認すると、前回 HEAD を最新の3回目のコミット位置から、1つ前の2回目のコミット位置に移動した後でも、HEAD の指す2回目のコミット位置より新しい3回目のコミット位置も表示されました。

ここで表示されるハッシュ値を用いて、 git reset –soft ハッシュ値 を入力することで、最新のコミット位置に戻ることができます。

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認1

以下は、 git log の結果です。
前述のとおり、 HEAD 以前のコミットの履歴が表示されます。
HEAD を1つ前のコミット位置に移動したため、最新の3回目のコミットの情報は表示されていません

G:\Dev\StudyTortoiseGit\Repo1Soft>git log
commit 1f1f4ddfa2e2b5feda69353cc8198b6a5903e2e4 (HEAD -> master)
Author: さくらくらうど <メールアドレス>
Date:   Mon Apr 28 18:18:31 2025 +0900

    file.txt に hello, world を追記。

commit e2829b8d833c07a9849bc0f4a857c69791e2bb50
Author: さくらくらうど <メールアドレス>
Date:   Mon Apr 28 18:12:16 2025 +0900

    file.txt をバージョン管理に追加します。

git log –reflog で reflog の情報を表示すると、HEAD の参照ログに記録されていた最新の3回目のコミットを指すハッシュ値などを確認できました。

–reflog

Pretend as if all objects mentioned by reflogs are listed on the command line as <commit>.

reflogs で言及されているすべてのオブジェクトがコマンド ラインに <commit> としてリストされているかのように見せかけます。
Git – git-reflog Documentation
G:\Dev\StudyTortoiseGit\Repo1Soft>git log --reflog
commit fa795f083559ba016c00be644bd24601ac587f41
Author: さくらくらうど <メールアドレス>
Date:   Tue Jun 3 09:38:16 2025 +0900

    file.txt に 2 行目を追加

commit 1f1f4ddfa2e2b5feda69353cc8198b6a5903e2e4 (HEAD -> master)
Author: さくらくらうど <メールアドレス>
Date:   Mon Apr 28 18:18:31 2025 +0900

    file.txt に hello, world を追記。

commit e2829b8d833c07a9849bc0f4a857c69791e2bb50
Author: さくらくらうど <メールアドレス>
Date:   Mon Apr 28 18:12:16 2025 +0900

    file.txt をバージョン管理に追加します。

前回の結果を TortoiseGit のログと RefLog で確認

前回git reset –soft HEAD~ コマンドと同等のことを TortoiseGit で行い、HEAD (現在のコミット位置を指す情報) を最新よりひとつ前のコミット位置(リビジョン)に移動しました。

その状態を、前の章の git コマンドと同様の TortoiseGit のメニューで確認します。

エクスプローラで、リポジトリフォルダを右クリックして表示されるメニュー「TortoiseGit」→「ログを表示」で、前の章で行った git log と同様の内容を表示します。

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認3

リビジョンログダイアログ(ログメッセージ)には、 git log コマンドの結果と同じく、 HEAD 以前(2回目のコミット)の履歴しか表示されず、3回目の最新のコミットについては表示されません
確認したら、OK ボタンで閉じます。

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認4

エクスプローラで、リポジトリフォルダを右クリックして表示されるメニュー「TortoiseGit」→「RefLog を表示」で、前の章で行った git log –reflog と同様の内容を表示します。

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認5

RefLog ダイアログには、前の章の git log –reflog と同じく、最新の3回目のコミットの情報も表示されています。
git log –reflog で確認したのと同じと思われるハッシュ値 (SHA-1) も確認できます。

TortoiseGit reset --soft で1つ前のコミット位置から最新のコミット位置にreflogで戻してログを確認6

今回はここまで

後半に続きます。

参照サイト 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をコピーしました