git 刪除文件

git刪除文件包括以下幾種情況

  1. 刪除本地文件,但是未添加到暫存區;
  2. 刪除本地文件,并且把刪除操作添加到了暫存區;
  3. 把暫存區的操作提交到了本地git庫;
  4. 把本地git庫的刪除記錄推送到了遠程服務器github。

git對于刪除操作有極大的撤銷空間,下面分別針對上面4種情況進行恢復操作。

一、刪除了本地文件,但未添加到暫存區;

選擇要刪除的文件12.md

刪除本地文件12.md

此時發現刪除錯誤了要進行恢復操作

恢復文件

二、刪除了本地文件,并且已經把刪除操作添加到了暫存區

刪除本地文件

通過git status查看狀態


查看刪除狀態

看提示可以知道,此時如果操作 git checkout 12.md 可以恢復刪除文件
如果操作 git add/rm 12.md 可以把刪除狀態添加到暫存區
我們進行添加操作


添加到暫存區

查看狀態,可以知道刪除操作已經被添加到了暫存區,
查看添加狀態

此時如果要撤銷操作,從提示可以知道,進行 git reset HEAD 12.md可以把刪除操作退回到本地刪除狀態,然后按照上面1的操作就可以恢復文件
從暫存區回滾

恢復文件

三、從暫存區把刪除操作提交到了本地git庫

提交刪除操作

查看狀態 git status

查看刪除狀態

可以看到有一個提交改動,此時如果要撤銷,就必須對git進行版本回滾操作
通過 git log 命令查看git庫的所有版本信息

查看git庫版本

如果感覺信息太多,可以查看簡潔log版本 輸入 git log --pretty=oneline

簡潔版log信息

看到一大串類似 6aef622c4……8445f2429f的用16進制表示的字符串是每次 commit 的ID版本號,此時我們進行版本回滾操作
選擇ID的前幾位字符串就足夠表示版本的唯一性,輸入命令 git reset --hard 6aef62

版本回滾
查看本地文件恢復情況

四、如果刪除操作已經推送到了遠程github服務器中,可以通過 git push 操作來進行推送

推送到遠程服務器

服務器刷新前的狀態

服務器刷新前的狀態

刷新服務器

刷新服務器后的狀態

可以看到文件被從服務器中刪除了,如果此時進行文件恢復操作就需要像上面第三步那樣進行版本回滾操作
當然了,這個版本回滾是在本地進行的,然后把回滾后的版本提交

git版本回滾

把回滾后的版本提交到遠程服務器 git push

版本提交出錯

可以看到提交出錯,因為git默認是高版本覆蓋低版本,但不能反過來操作,因為回滾的版本比服務器此時的版本低,所以此時常規手段是無效的,但可以進行版本的暴力提交——force
通過git的提示 git push -h 可以查看到 force的說明

查看force的解釋

進行暴力提交 git push -f

暴力提交

刷新github遠程服務器刷新操作

文件失而復得

如果要在服務器中回到刪除文件的高級git版本版本該怎么操作呢?

  1. 當然了,最簡單的辦法就是把費了老勁恢復的文件再次刪除就可以,這樣效果上是可以的,但是之前的那個git版本號其實是丟失了。
  2. git中有一個命令 reflog 可以查看每次提交的信息,包括 commit ID和名稱,可以通過提交信息找到之前的版本好,然后重新回滾就可以了。
查找commit ID

進行回滾操作

版本回滾成功

然后再進行暴力提交

暴力提交

刷新github服務器

刷新服務器
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容