author avatar
  プロダクトマネージャー
2026-8-6Kentaが更新しました

概要
Git操作でファイルを誤って消してしまったとき、「git reflog 削除したファイル 復元」で検索する方に向けて、確実に復元するための手順を解説します。履歴が残っていない場合の代替復旧方法も紹介します。



Gitでresetやrebaseを行った際に、思わぬファイル削除に遭遇することがあります。そんなときに役立つのが git reflog を使った復元方法です。本記事では「git reflog 削除したファイル 復元」をキーワードに、具体的なコマンドの使い方をわかりやすく解説します。

【解決策】git reflogで削除したファイルを3ステップで復元

ステップ 1: git reflog を実行し、ファイル削除直前のコミットハッシュを特定します.
git reflogでコミットを検索する画面
ステップ 2: git checkout -- を実行して、そのコミットからファイルを復元します。
- commit_hash には、完全な 40 文字の SHA-1、 短いハッシュ(通常 7〜12 文字) 、一意なプレフィックス、あるいは v1.2.0 のようなタグも使用できます。
- file_path には、現在の作業ディレクトリからの相対パスを指定します。リポジトリ外のローカルファイルシステムの絶対パスは使用できません。
例:git checkout abc1234 -- src/renee_utils/math.js
git restore は、--source オプションを使用することで、コミットハッシュを指定して同様の復元も可能です。このコマンドは作業ツリー( –staged を指定した場合はインデックス)にのみ影響し、ブランチ自体は変更しません。
ステップ 3: git addgit commit を実行し、復元したバージョンを保存します。
警告: この方法は、ファイルが過去にコミットされており、かつ reflog エントリーが有効期限内である場合に のみ 機能します。追跡されていないファイルや未コミットのファイルは復元できません。時間が経過すると、Git のガベージコレクションによって浮遊コミットが永久に削除されることがあります。

git reflog の限界とそれを補う解決策

なぜ git reflog で復元できない場合があるのか

Git はコミットされたファイルのみを追跡します。ファイルが 一度もコミットされていない削除後に上書きされた 、または reflog エントリーが 期限切れ になった場合、Git はそのファイルを認識できません。このような場合でも、ストレージドライブ上に生データが残っている可能性があります。データ復旧ツールを使えば、ディスクを直接スキャンして、Git からは見えなくなったファイルを復元できることがあります。

a. git reflog に表示される操作

git reflog には、 コミットチェックアウトリセットマージリベース修正コミット(amend)スタッシュブランチ の作成・削除、およびローカルブランチを更新する プル 操作が表示されます。

b. git reflog に表示されない操作

以下の操作は参照(リファレンス)が移動しないため、reflog には記録されません。
1. 作業ディレクトリやインデックスにのみ影響するコマンド
git addgit rmgit restoregit statusgit diff
2. リモートのみの変更
Reflog はサーバー上で発生したイベントを追跡しません。ローカルのリモート参照コピーに対する変更のみを記録します。
3. コミットを作成しないファイル変更
Reflog は内容の変更ではなく、参照の移動のみを記録します。

c. 有効期限について

Git はリポジトリの肥大化を防ぐため、時間の経過とともに古い reflog エントリー を自動的に削除します。これらのエントリーが削除(prune)されると、基盤となるコミットデータにアクセスできなくなり、Git 経由での復元ができなくなります。
デフォルトの有効期限ルール:
エントリーの種類保持期間

通常の reflog エントリー

約90日

到達不能なエントリー(浮遊コミット)

約30日

削除されたコミットは通常、約90日間は復元できます。
以下のコマンドで保持期間をカスタマイズできます:

git config –global gc.reflogExpire 120.days
git config –global gc.reflogExpireUnreachable 45.days

Git はコミットされた変更を追跡する強力なツールですが、未コミットのデータは復元できません。ファイルが一度もコミットされていない、上書きされた 、あるいは reflog エントリーが期限切れになるなど Git の管理外になった場合は、 バージョン管理 レベルではなく ストレージ レベルで動作するソリューションが必要です。このような場合に専用データ復旧ユーティリティが役立ち、Git が参照・再構築できなくなったファイルを取り出すことができます。

Renee Undeleter で削除したファイルを復元(Git 以外の推奨手段)

Renee Undeleter は、Git では復元不可能な状況下でも、消失・削除されたファイルを回復できるプロ向けデータ復旧ツールです。ファイルが 一度もコミットされていない ケースや、破壊的な Git 操作後にディスク書き込みが発生した場合などに特に効果を発揮します。
Renee Undeleter は シグネチャスキャン を用いて 400 種類以上のファイル形式 を復元できるため、ファイルシステムのメタデータに依存せずに回復できます。本ソフトウェアは、さまざまなデータ損失状況に対応した複数のスキャンモードを提供しています:
おすすめ Renee Undeleterの高度なモードで効率的にスキャン データ復元ソフトRenee Undeleter

操作簡単 ウィザード形式で初心者も自力で復元可能。

100%安全 読み取り専用モードでデバイスをスキャンし、データをお見つけ出すだけで、データへの修正等の操作は一切ありません。

500以上種類のデータ復元対応 音楽、動画、地図、ワード、ドキュメント、PDF、メール、写真等よく利用されるファイルを復元可能。

プレビュー機能付き スキャン中もプレビュー可能、目標データが出たら、スキャンを中止でき、高速に復元可能。

多OS支持Windows 11, 10,8.1,8,7,Vista,XP,2000及びMac OS X10.6,10.7,10.8

操作簡単 ウィザード形式で初心者も自力で復元可能。

100%安全 読み取り専用モード復元、データへの修正等の操作...

500以上種類のデータ復元対応 音楽、動画、メール、写真等復...

無料体験無料体験無料体験 122653名のユーザー様に体験をしていただきました!
- クイックパーティションスキャン :誤削除やゴミ箱を空にしてしまったファイルの復元に適しています。
- パーティションの完全スキャン :フォーマット済みまたはアクセス不能なパーティションから失われたファイルの復元に適しています。
- ディスクの完全スキャン :ドライブ全体を包括的にスキャンする場合に使用します。
- ミラーリング作成 :バックアップや後日の復旧のためにパーティションのミラーイメージを作成します。
Renee Undeleter は、Windows の主要ファイルシステム(NTFS、FAT、FAT32、exFAT )に加え、macOS や Linux のファイルシステムにも対応しています。直感的な UI を採用しているため、専門知識がない方でも手軽に復旧作業を進められます。
Renee Undeleterでチェックボックスを使って復元するファイルをプレビュー・選択

Renee Undeleter のスキャン開始手順(概要)

1. 公式サイトから Renee Undeleter を ダウンロード・インストール します。
重要: データを失ったドライブ自体にはインストールしないでください。復元対象ファイルが上書きされるリスクがあります。
2. スキャンモードを選択します。 メイン画面で、誤削除の場合は クイックパーティションスキャン を、ドライブをフォーマットした場合は パーティションの完全スキャン を選択します。
Renee Undeleterでクイックパーティションスキャンを選択
3. スキャンして復元します。 対象のパーティションを選択し、 次へ をクリックします。
クイックパーティションスキャンの対象パーティションを選択
クイックパーティションスキャン (必要に応じて ディスクの完全スキャン )を選択します。
クイックパーティションスキャンで消失データを検索
スキャンが完了するまで待ちます。ファイルをダブルクリックしてプレビュー確認し、必要なものを選択して 復元 をクリックします。
PDFファイルのプレビュー画面
4. 安全に保存します。 元の紛失データを上書きしないよう、復元したファイルは必ず 別のディスク に保存してください。

よくある質問(FAQ)

1. コミットされていないファイルも git reflog で復元できますか?

いいえ。git reflog は コミット済み の変更に伴う HEAD の移動のみを記録します。ファイルがステージングもコミットもされていない場合、Git はその存在を管理していないため、reflog では復元できません。このような場合は、Renee Undeleter のような復旧ツールを使ってディスク上の生データをスキャンする必要があります。

2. reflog のエントリーはどのくらいの期間保持されますか?

デフォルトでは、Git は到達可能なコミットの reflog エントリーを 90日間 、到達不能なものを 30日間 保持します。これらの期間は gc.reflogExpire および gc.reflogExpireUnreachable で変更可能です。エントリーが期限切れになりガベージコレクションが実行されると、それらのコミットは永久にアクセス不能になる可能性があります。

3. ステージのみで未コミットのファイルは git reset --hard 後に復元できますか?

いいえ、Git 単体では復元できません。 git reset –hard は、インデックス(ステージングエリア)と作業ツリー内の未コミット変更の両方を破棄します。ファイルがステージングのみでコミットされていない場合、それを含むコミットオブジェクトが存在しません。そのため、ディスク上の残存データをスキャンできるデータ復旧ツールが必要です。

4. git restore と git checkout の違いは?

git restore –source= — は Git 2.23 で導入された、より現代的で安全なコマンドです。作業ツリー(または –staged を指定した場合はインデックス)にのみ影響し、ブランチ自体は変更しません。 git checkout — でもファイルを復元できますが、同時にステージングも行ってしまいます。単純なファイルの復元には git restore の使用をお勧めします。
おすすめ Renee Undeleter - データ復元の専門家 データ復元ソフトRenee Undeleter

操作簡単 ウィザード形式で初心者も自力で復元可能。

100%安全 読み取り専用モードでデバイスをスキャンし、データをお見つけ出すだけで、データへの修正等の操作は一切ありません。

500以上種類のデータ復元対応 音楽、動画、地図、ワード、ドキュメント、PDF、メール、写真等よく利用されるファイルを復元可能。

プレビュー機能付き スキャン中もプレビュー可能、目標データが出たら、スキャンを中止でき、高速に復元可能。

多OS支持Windows 11, 10,8.1,8,7,Vista,XP,2000及びMac OS X10.6,10.7,10.8

操作簡単 ウィザード形式で初心者も自力で復元可能。

100%安全 読み取り専用モード復元、データへの修正等の操作...

500以上種類のデータ復元対応 音楽、動画、メール、写真等復...

無料体験無料体験無料体験 122653名のユーザー様に体験をしていただきました!

ユーザーコメント

Page 1

コメントを残す


あなたのコメントは送信され、承認待ちです。