git 恢復到最近一次 git pull狀態,取消本地修改

你可以使用以下幾種方式來將 Git 工作目錄恢復到最近一次 git pull 的狀態,取消本地的修改。這取決於你修改的是哪些內容(未加入暫存區、已加入暫存區、已建立新 commit 等):


🧼 完全取消所有本地修改(未 commit)

如果你只是修改了檔案但尚未 git addcommit,可以使用:

git restore .

這會把所有檔案恢復成最新版本(HEAD),取消所有未暫存的修改。


🧼 取消已加入暫存區的修改

如果你已經執行了 git add,但還沒 commit,可以先取消暫存:

git restore --staged .

然後再執行:

git restore .

🔄 回到最近一次 git pull 的狀態(丟棄所有 commit)

如果你已經 commit 了本地修改,但想完全回到遠端的狀態,可以使用:

git reset --hard origin/你的分支名稱

例如:

git reset --hard origin/main

這會把你的本地分支強制重設為遠端分支的狀態,所有本地 commit 和修改都會被清除


🧠 檢查目前狀態(建議先做)

在執行上述指令前,建議先用以下指令檢查目前的修改狀態:

git status

這樣可以確認哪些檔案已修改、哪些已暫存、是否有未推送的 commit。

Also See

File14FileLast Modified
git 初始化與推送流程圖git 初始化與推送流程圖1:24 AM - December 07, 2025
git 中查看commit歷史資訊git 中查看commit歷史資訊1:24 AM - December 07, 2025
git 中修改檔名且保留原來commit紀錄git 中修改檔名且保留原來commit紀錄1:24 AM - December 07, 2025
git Remote 常見情境與操作git Remote 常見情境與操作1:24 AM - December 07, 2025
git GUI tool, SourceTreegit GUI tool, SourceTree1:23 AM - December 07, 2025
把目前repo 所有的branch都push 到github把目前repo 所有的branch都push 到github8:20 PM - December 06, 2025
把目前 branch 上的修改(尚未 commit 的檔案)直接帶到一個新的 branch把目前 branch 上的修改(尚未 commit 的檔案)直接帶到一個新的 branch8:20 PM - December 06, 2025
從 Windows 把 repo 搬到 WSL再一次性 push 所有 branch 到GitHub 這樣就能避開 aux 檔名問題從 Windows 把 repo 搬到 WSL再一次性 push 所有 branch 到GitHub 這樣就能避開 aux 檔名問題8:20 PM - December 06, 2025
git指定初始化的 branch 名稱git指定初始化的 branch 名稱8:20 PM - December 06, 2025
git內部完全刪除一個檔案git內部完全刪除一個檔案8:20 PM - December 06, 2025
github上的repo clone下來check out 某一個dev branchgithub上的repo clone下來check out 某一個dev branch8:20 PM - December 06, 2025
github一台電腦同時使用兩個 GitHub 帳號github一台電腦同時使用兩個 GitHub 帳號8:20 PM - December 06, 2025
github actionsgithub actions8:20 PM - December 06, 2025
git 重新再從github上pull 所有branchgit 重新再從github上pull 所有branch8:20 PM - December 06, 2025