author avatar
    高級程式開發員
最後由王麗娜 2026-8-10進行了更新

摘要
搞不清楚這四個指令的差別在哪嗎?本文完整解析這些指令的作用範圍與是否修改歷史紀錄的差異,並依恢復狀態、風險等級與資料保留需求,提供選擇指南,助您安全找回誤刪檔案。



git restore、checkout、reset、revert 差別示意圖
發現 Git 裡的程式碼不見了,絕對是開發者最崩潰的時刻之一。也許是手誤執行 reset --hard 清空了工作目錄,或是用 checkout 意外覆蓋了重要修改 。這四個指令都能「復原」某些操作,但用錯指令,可能讓數小時的心血付諸東流。如果您曾盯著終端機畫面,不確定哪個指令能救回被刪檔案,又不破壞儲存庫歷史,這篇指南正是為您準備的。接下來會帶您了解每個指令的實際作用,讓您有信心地進行檔案恢復。

git restore、checkout、reset、revert 的差別:對照比較表

下表摘要了各指令的作用範圍、是否會重寫提交歷史、風險等級及最佳使用情境。在執行任何復原指令前,建議先參考此表,釐清這四個指令的差別。
指令作用範圍(工作目錄 / 索引 / HEAD)是否重寫歷史?風險等級最佳使用情境

git restore(TortoiseGit:Revert changesUnstage files

工作目錄、索引

安全地捨棄未暫存編輯或取消檔案暫存

git checkout(檔案層級)(TortoiseGit:Revert to this revisionSwitch/Checkout

工作目錄

較舊的檔案恢復方法;restore 更安全且語意明確

git reset(TortoiseGit:Reset

索引、HEAD(視選項而定)

是(可能重寫本機歷史)

使用 --hard 時風險高

撤銷本機提交;可選擇保留或捨棄變更

git revert(TortoiseGit:Revert changes by this commit

HEAD(建立新提交)

否(保留歷史)

在共享分支上風險低

透過新增抵銷提交來撤銷已推送的提交

注意: git restore 是為了將檔案恢復功能從 git checkout(也用於切換分支)獨立出來而推出。雖然 git checkout -- {file} 仍然有效,但 restore 更安全、語意更明確,特別適合初學者理解這四個指令的差別。
如果您使用會重寫歷史的指令(如 git reset),舊有提交將無法存取,並可能被垃圾回收機制清除。在共享分支上,這可能造成嚴重的版本分歧。對於已推送的提交,請務必使用 git revert

用錯指令導致檔案遺失?使用 Renee Undeleter 作為救援備案

有時破壞性的 Git 指令會刪除 Git 本身無法恢復的檔案,例如 git reset --hard 刪除尚未提交的檔案。這時,專業的資料恢復工具 往往是最佳,有時也是唯一的選擇。
Renee Undeleter 是一款適用於 Windows、記憶卡與外接硬碟的專業資料恢復軟體。它針對誤刪、磁碟格式化 或作業系統崩潰等情況設計,能處理因 Git 指令誤刪未追蹤檔案造成的資料遺失。
這款軟體提供四種核心掃描模式:
- 檔案恢復 :透過掃描分割區的前 30 GB,快速恢復近期被刪除的檔案。
- 格式化恢復 :針對已格式化、損毀或無法存取的分割區進行檔案恢復,支援超過 400 種檔案格式的簽章掃描。
- 分割槽恢復 :重建分割區資訊並掃描每一個磁區,特別適合嚴重受損的硬碟。
在 Renee Undeleter 中選擇掃描整顆磁碟
- 建立鏡像 :為分割區建立逐位元組備份,讓您在嘗試恢復時不必擔心造成進一步損壞。
在 Renee Undeleter 中選擇檔案恢復模式
其主要優勢包括支援多種檔案系統(如 NTFS、FAT、exFAT ,以及 macOS 與 Linux 的檔案系統)、恢復前預覽檔案內容,以及兼顧新手與進階使用者的友善介面。
恢復前先預覽檔案
在 Renee Undeleter 中預覽檔案內容
優點:
  • 四種掃描模式對應不同資料遺失類型
  • 透過簽章掃描辨識超過 400 種檔案格式
  • 支援多重檔案系統(如 NTFS、FAT、exFAT,以及 macOS 與 Linux 的檔案系統)
  • 內建恢復前檔案預覽功能
  • 建立鏡像功能可優先備份受損磁碟

缺點:

  • 嚴禁安裝在要恢復資料的同一磁碟上
  • USB 外接磁碟延遲較高,掃描速度較慢
  • 大型分割區的深度掃描較為耗時
  • 建立備份鏡像需要相同大小的可用分割區空間
  • 嚴重被覆蓋的資料不保證能成功恢復

熱點推薦 使用 Renee Undeleter 從受損磁碟恢復遺失的 Git 檔案

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

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

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

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

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

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

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

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

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

到底該用哪個指令?依情境分類的實務範例

選擇正確的 Git 指令,取決於儲存庫目前的狀態。以下提供清晰且貼近實務的範例,協助您在釐清這四個指令的差別後,選出最安全的選項,避免危及工作或重寫共享歷史。

1. 捨棄工作目錄中未暫存的修改

當您修改了檔案,卻想放棄這些變更時。此時只影響工作目錄,提交歷史保持不變。

git restore {file}

此指令會將工作目錄中的檔案安全地還原為索引中的版本(若檔案未加入索引,則還原為 HEAD 的版本)。

2. 取消檔案暫存,但保留修改內容

若您不小心用 git add 暫存了檔案,想把它移回工作目錄,同時保留修改內容。

git restore –staged {file}

編輯內容完全不受影響,只會更新索引狀態。

3. 撤銷最近一次本機提交,但保留變更

若您太早提交且尚未推送,想撤銷該提交,並將變更保留在暫存區:

git reset –soft HEAD~1

--soft 參數會將 HEAD 回退一次提交,但保留工作目錄與索引的內容,讓所有檔案處於可再次提交的狀態。
警告: 除非您確定要永久刪除所有尚未提交的變更,否則請避免使用 git reset --hard HEAD~1--hard 選項會同時清除暫存區與工作目錄的編輯內容,且無法透過 Git 恢復。

4. 撤銷已推送至遠端的提交

如果提交已存在於遠端分支,切勿重寫歷史。應建立新提交來反向抵消變更:

git revert

這是共享分支上的安全做法,既能保留專案歷史,也不需要強制推送。

5. 恢復被刪除的已追蹤檔案

若您刪除了某個已追蹤檔案,並想從最新提交中找回它:

git restore –source=HEAD –staged –worktree {file}

--source=HEAD 從最新提交取得檔案,--staged 會更新索引,--worktree 則還原工作目錄。舊版的等效指令為:

git checkout HEAD — {file}

這兩個指令都可恢復仍存在於歷史紀錄中的已追蹤檔案。但如果該檔案從未提交過,Git 就無法恢復,此時必須改用檔案恢復工具。

常見問題

執行 git reset --hard 後還能復原嗎?

有些情況下可以,但要盡快處理。Git 的 reflog 會記錄 HEAD 的移動軌跡。執行 git reflog,找到重置前的提交雜湊值,再使用 git reset --hard 即可回退。但這只能恢復已提交的變更;被 --hard 刪除、尚未提交的檔案,在 Git 層面已無法挽回,需依賴檔案恢復軟體。

在共享的遠端分支上使用 git restore 安全嗎?

是的。git restore 只會改變本機工作目錄或索引,絕不會重寫提交歷史或影響遠端分支。使用上相當安全,但請記住,一旦捨棄本機編輯就無法復原。

用白話文解釋 git reset 和 git revert 有什麼不同?

git reset 會將目前分支的指標向後移動,實質上從時間軸上抹除提交(雖然這些提交在被垃圾回收前仍存在於 reflog 中),屬於重寫歷史的操作。git revert 則是建立新提交來抵銷先前提交的變更,完整保留歷史紀錄。在協作環境中,請務必使用 git revert。這也是理解這四個指令的差別的核心關鍵。
熱點推薦 專業檔案救援軟體 - Renee Undeleter

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

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

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

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

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

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

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

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

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

使用者評論

Page 1

發表評論


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