記錄一次誤刪操作,分享使用 Git 撤銷修改

lxzoliver發表於2020-01-20

前幾天在寫程式碼的時候,原本想要刪除幾個檔案的操作,結果一不小心直接將整個目錄下的檔案都刪除了,本人用的git管理工具是sourceTree,但sourceTree的操作只支援一個檔案一個檔案的撤銷修改,然而整個目錄的檔案非常多,這時候肯定就不能一個一個的操作,太浪費時間了

於是我查詢百度,並總結記錄一下撤銷當前修改的方法

具體操作,我是參考該部落格

一,

未使用 git add 快取程式碼時。

可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘記中間的 “--” ,不寫就成了檢出分支了!!)。放棄所有的檔案修改可以使用 git checkout .  命令。

此命令用來放棄掉所有還沒有加入到快取區(就是 git add 命令)的修改:內容修改與整個檔案刪除。但是此命令不會刪除掉剛新建的檔案。因為剛新建的檔案還沒已有加入到 git 的管理系統中。所以對於git是未知的。自己手動刪除就好了。

二,

已經使用了  git add 快取了程式碼。

可以使用  git reset HEAD filepathname (比如: git reset HEAD readme.md)來放棄指定檔案的快取,放棄所以的快取可以使用 git reset HEAD . 命令。

此命令用來清除 git  對於檔案修改的快取。相當於撤銷 git add 命令所在的工作。在使用本命令後,本地的修改並不會消失,而是回到瞭如(一)所示的狀態。繼續用(一)中的操作,就可以放棄本地的修改。

三,

已經用 git commit  提交了程式碼。

可以使用 git reset --hard HEAD^ 來回退到上一次commit的狀態。此命令可以用來回退到任意版本:git reset --hard  commitid 

你可以使用 git log 命令來檢視git的提交歷史。

————————————————
版權宣告:本文為CSDN博主「白馬不是馬」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/kuodannie1668/articl...

還有一個問題,大家覺得用git版本管理專案,是用sourceTree等圖形工具還是用命令列

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章