author avatar
    資深軟體經理
最後由王麗娜 2026-8-5進行了更新

摘要
不小心執行 reset 或 rebase,導致檔案消失?本篇教學會帶您掌握如何用 git reflog 還原已刪除檔案的正確指令。若版本控制紀錄已過期或不足,我們也提供替代的磁碟掃描救援方案,確保您的心血不會白費。請繼續閱讀,找回遺失的檔案!



執行 git resetgit rebase 或 amend 後不小心弄丟檔案?本篇指南會逐步教您如何使用 git reflog 還原已刪除檔案。如果 Git 的歷史紀錄無法協助,您也可以了解如何使用專業資料救援軟體掃描磁碟,為您的情況選擇最適合的救援方法。

快速解答:3 個步驟使用 git reflog 還原已刪除檔案

步驟 1: 執行 git reflog 以找到檔案被刪除前的 commit hash。
使用 git reflog 尋找 commit
步驟 2: 執行 git checkout <commit_hash> -- <file_path> 以從該 commit 還原檔案。
- commit_hash 可以是完整的 40 個字元 SHA-1、 短 hash(通常為 7 到 12 個字元) 、任何唯一的字首,甚至是像 v1.2.0 這樣的 tag。
- file_path 必須是 Git 儲存庫內的路徑,且相對於儲存庫根目錄。您不能使用儲存庫外的本機檔案系統路徑。
範例:git checkout abc1234 -- src/renee_utils/math.js
git restore 不能以相同方式直接接收 commit hash。它主要用於重置工作目錄,不是用來從任意歷史 commit 取出檔案。
步驟 3: 執行 git addgit commit 以儲存恢復的版本。
警告: 此方法 在檔案先前已 commit,且 reflog 紀錄尚未過期時有效。它無法恢復未追蹤或未 commit 的檔案。隨著時間經過,Git 的垃圾回收機制可能會永久移除懸置的 commit。

git reflog 的限制與解決方案

為什麼 git reflog 有時無法還原您的檔案?

Git 僅追蹤已 commit 的檔案。若檔案 從未 commit刪除後被覆寫 ,或 reflog 紀錄已 過期 ,Git 就無法再追蹤到它。在這些情況下,檔案的原始資料可能仍留在磁碟上,即使 Git 已無法存取。資料救援工具可以直接掃描磁碟,並可能恢復這些 Git 已無法追蹤的檔案。

a. git reflog 會記錄哪些操作?

git reflog 會顯示本機分支的更新操作,包括 commitscheckoutsresetsmergesrebasesamended commitsstashbranch 建立或刪除,以及 pulls

b. git reflog 不會記錄哪些操作?

這些操作不會移動任何 reference,因此不會留下 reflog 紀錄:
1. 僅影響工作目錄或暫存區的指令
git addgit rmgit restoregit statusgit diff
2. 僅影響遠端的變更
Reflog 不會追蹤伺服器上的操作,只會追蹤您本機遠端 refs 副本的變更。
3. 不會建立 commit 的檔案變更。
Reflog 不會記錄內容變更,只會記錄 ref 的移動。

c. 紀錄的過期時間

Git 會隨著時間自動移除較舊的 reflog 紀錄 ,避免儲存庫無限增長。一旦這些紀錄被清除,相關 commit 資料就無法存取,您也無法再透過 Git 恢復。
預設過期規則:
項目類型保留期限

一般 reflog 紀錄

約 90 天

無法存取的項目(懸置 commit)

約 30 天

通常可以恢復已刪除的 commit,保留期約為 90 天
您可以使用以下指令自訂保留期限:

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

雖然 Git 提供強大的工具來追蹤已 commit 的變更,但遇到未 commit 的資料時就無法處理。一旦檔案超出 Git 的追蹤範圍,例如從未 commit、被覆寫 ,或 reflog 紀錄已過期,您就需要一個在 儲存層級 而非 版本控制層級 運作的解決方案。這時,專業資料救援工具就相當重要。它能擷取 Git 無法再參考或重建的檔案。

使用 Renee Undeleter 還原已刪除檔案(推薦的非 Git 救援方案)

Renee Undeleter 是一款專業的資料救援工具,即使 Git 無法處理,也能找回遺失或已刪除的檔案。若檔案 從未 commit ,或在破壞性 Git 操作後又有其他磁碟活動,這款工具會特別有用。
Renee Undeleter 可透過特徵碼掃描 恢復超過 400 種檔案格式 ,因此不依賴檔案系統中繼資料也能還原檔案。該軟體提供多種掃描模式,針對不同資料遺失情況設計:
熱點推薦 使用 Renee Undeleter 的進階模式進行更智慧的掃描

簡單易用 簡單幾步即可從不同的儲存裝置救回檔案。

多種掃描方案 內建多種掃描方案,可針對不同的檔案丟失原因進行掃描救援!

多檔案類型救援 可從不同的儲存裝置中救回多種類型的檔案。

救援前可預覽 可邊掃描邊預覽已掃描到的檔案,確認檔案內容及質量後,可立即停止掃描進行救援!

適用於:Windows 10 / 8.1 / 8 / 7 / Vista / XP (32bit/64bit) & Mac OS 10.6 或以上

簡單易用 簡單幾步即可救回檔案。

多檔案類型救援 可從不同的儲存裝置中救回多種格式的檔案。

多種掃描方案 可針對不同的檔案丟失原因進行救援!

免費試用免費試用免費試用已有1000名用戶下載并使用Renee Undeleter成功救回丟失的檔案資訊!
- 檔案恢復 – 適用於因意外刪除或清空資源回收筒而遺失的檔案。
- 分割槽恢復 – 適用於從已格式化或無法存取的分割槽中遺失的檔案。
- 分割槽恢復 – 適用於對整個磁碟進行完整掃描。
- 建立鏡像 – 用於建立分割槽鏡像,以便備份或日後救援。
Renee Undeleter 支援所有主要的 Windows 檔案系統(NTFS、FAT、FAT32、exFAT ),以及 macOS 和 Linux 檔案系統。其直覺式操作介面讓救援過程簡單明瞭,即使沒有技術背景的人也能輕鬆上手。
在 Renee Undeleter 中透過勾選框預覽並選取要恢復的檔案

如何使用 Renee Undeleter 開始掃描(操作概覽)

1. 從官方網站 下載並安裝 Renee Undeleter。
重要提示: 請勿將軟體安裝在遺失資料所在的磁碟上,以免覆寫遺失的檔案。
2. 選擇掃描模式。 在主介面中,若是意外刪除,請選擇 檔案恢復 ;若磁碟已格式化,請選擇 分割槽恢復
Renee Undeleter,選擇檔案恢復
3. 掃描並恢復。 選擇目標分割槽,點擊 下一步
選擇要進行檔案恢復掃描的分割槽
選擇 快速掃描 (或視需要選擇 深度掃描 )。
快速掃描遺失的資料
等待掃描完成。您可以雙擊檔案預覽,選取需要的檔案,然後點擊 恢復
預覽 PDF 檔案
4. 安全儲存。 請務必將恢復的檔案儲存到 不同的磁碟 ,避免覆寫原本遺失的資料。

常見問題

1. git reflog 能協助恢復從未 commit 過的檔案嗎?

不行。Git reflog 只會記錄 已 commit 變更的 HEAD 移動。如果檔案從未被暫存或 commit,Git 就不會有它的紀錄,reflog 也無法協助。在這種情況下,請使用 Renee Undeleter 這類救援工具掃描磁碟,尋找原始資料。

2. reflog 紀錄在過期前會保留多久?

預設情況下,Git 會將可存取 commit 的 reflog 紀錄保留 90 天 ,無法存取的則保留 30 天 。這些期限可透過 gc.reflogExpiregc.reflogExpireUnreachable 更改。一旦紀錄過期且執行垃圾回收,這些 commit 就可能永久無法存取。

3. 執行 git reset --hard 後,若檔案只被暫存但從未 commit,還能恢復嗎?

不行,單靠 Git 無法做到。 git reset –hard 會捨棄暫存區(index)和工作目錄中未 commit 的變更。如果檔案只是被暫存而從未 commit,就不會有包含它的 commit 物件。您需要能掃描磁碟殘留資料的資料救援工具。

4. 恢復已刪除檔案時,git restore 和 git checkout 有什麼差別?

git restore –source= — 是 Git 2.23 引入的指令,較新且更安全。它只會影響工作目錄(或使用 –staged 時影響暫存區),不會修改您的分支。 git checkout — 也能還原檔案,但同時會將其暫存。對於簡單的檔案恢復,建議使用 git restore
熱點推薦 專業檔案救援軟體 - Renee Undeleter

簡單易用 簡單幾步即可從不同的儲存裝置救回檔案。

多種掃描方案 內建多種掃描方案,可針對不同的檔案丟失原因進行掃描救援!

多檔案類型救援 可從不同的儲存裝置中救回多種類型的檔案。

救援前可預覽 可邊掃描邊預覽已掃描到的檔案,確認檔案內容及質量後,可立即停止掃描進行救援!

適用於:Windows 10 / 8.1 / 8 / 7 / Vista / XP (32bit/64bit) & Mac OS 10.6 或以上

簡單易用 簡單幾步即可救回檔案。

多檔案類型救援 可從不同的儲存裝置中救回多種格式的檔案。

多種掃描方案 可針對不同的檔案丟失原因進行救援!

免費試用免費試用免費試用已有1000名用戶下載并使用Renee Undeleter成功救回丟失的檔案資訊!

使用者評論

Page 1

發表評論


您的留言已提交,正在等待審核。