【Git】還原相關

以下是關於 Git 還原(恢復)功能的完整說明

Git 還原功能總表

指令 還原範圍 是否會刪除暫存區 是否會刪除未追蹤檔案 適用情境
git checkout . 工作目錄 還原已追蹤檔案
git restore . 工作目錄 推薦用法,等同於 checkout .
git restore --staged 暫存區 還原 git add 的檔案
git reset 暫存區 退回 staging 區
git reset --hard HEAD 工作目錄 + 暫存區 是(若搭配 clean) 徹底放棄所有變更(⚠危險)
git clean -fd 未追蹤檔案/資料夾 無關 清空未納入 Git 管控的檔案
git revert <commit> 版本歷史 無關 安全回復 commit(保留紀錄)

 


Git 還原功能完整整理與使用說明

在日常開發中,Git 提供多種指令用來還原工作目錄、暫存區,或是回復錯誤的 commit。根據不同的需求,選擇合適的還原方式可避免資料遺失或版本混亂。


1. git checkout .

還原所有「已追蹤檔案」回到最新 commit 的狀態。

適用情境:


2. git restore(推薦用法)

git restore 是 Git 2.23+ 提供的新指令,取代過去 checkout 的混用狀況。

範例:

git restore .                # 還原所有檔案
git restore path/to/file.js # 還原單一檔案

3. git restore --staged

還原暫存區的內容,讓已 git add 的檔案退回至工作目錄狀態。

git restore --staged path/to/file.js

4. git reset

還原 staging 區(暫存區),讓所有已 git add 的檔案回到修改中狀態。

git reset

5. git reset --hard HEAD

工作目錄與暫存區 都還原成最近一次提交(HEAD)的狀態。

git reset --hard HEAD

適用情境:


6. git clean -fd

清除所有「未被追蹤的檔案與資料夾」。

git clean -fd

適用情境:


7. git revert

對某個已提交的 commit 產生一個「反向操作的 commit」。

git revert <commit_hash>

適用情境:


 


修訂版本 #3
由 treeman 建立於 6 @ 2023 01:04:15
由 treeman 更新於 14 K 2025 10:21:49