主要指令: git checkout
git reset
git log
git reflog
1.修改了檔案或刪錯檔案了, 還沒commit前, 後悔了怎麼辦??
2.修改了檔案或刪錯檔案了, 已經commit了, 後悔了怎麼辦??
1.以下針對還沒commit 前的還原方式
a.修改檔案或刪除檔案 filename.txt , 但後悔了
git checkout filename.txt #還原已修改或已刪除檔案(常用)
git checkout #還原 目錄
git checkout master #還原 分支(master)之內所有檔案
b.檔案:filename.txt 修改,並且已經add
git reset --HARD #退到修改或刪除前 (常用)
git reset --soft #退到 staging (已add 但未commit)
git reset --mixed #退到 untrack (還沒add)
2.以下針對已經commit 的還原方式
新增dog.txt commit #aa00
刪除dog.txt commit #aa01
首先先git log 顯示 commit 歷程 ,找到想還原的commit編號e.g eg60
git reset --hard aa00 #回到該commit編號(常用)
若還原檔案後(aa00) 到又後悔, 想再回到原本的commit (aa01 )
用git log 已經看不到該commit編號(aa01) 因為已經回到從前(aa00)了
請改用git reflog 找到 aa01
git reset --hard aa01 #回到該commit編號(常用)