[Git] Git 自學筆記 : 修改或刪除檔案, 後悔了怎麼辦??

  • 14752
  • 0
  • Git
  • 2017-11-17

主要指令: 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編號(常用)