前幾天在寫程式碼的時候,原本想要刪除幾個檔案的操作,結果一不小心直接將整個目錄下的檔案都刪除了,本人用的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 協議》,轉載必須註明作者和本文連結