從git中永久刪除檔案以節省空間

2021-05-01 17:37:46 字數 606 閱讀 8898

在使用版本管理工具的過程中我們會碰到這樣的問題:不小心把乙個不該加入版本管理的檔案加進去了,有時候這個檔案很大,也許我們整個版本庫才幾百 k,但加進去這個沒用的檔案卻有好幾百m,我可不想因為這麼個破爛東西把整個版本庫整個碩大無比,以後維護備份都不方便;還有時候是不小心把乙個敏感檔案 加進去了,比如裡面寫了信用卡密碼的文字檔案。

這時候我們希望能把它從版本庫中永久刪除不留痕跡,不僅要讓它在版本歷史裡看不出來,還要把它占用的空間也釋放出來。

在svn中的辦法是把整個版本庫dump出來filter一下再load回去。git中可以用下面的方法來實現:

我們先建立乙個試驗用的版本庫,並往裡面提交乙個10m的大檔案再刪除:

這時候我們看看版本庫的大小:
很明顯雖然testme.txt已經被刪除了,但是因為版本歷史裡曾經有過這個檔案,所以git仍然把它存在庫中,以後可以通過它再把它恢復回來。
但我實在是不希望這麼乙個空版本庫占用我10m寶貴的硬碟空間,所以我要把它全刪掉,這就要用到git的filter-branch命令了。具體這個命令的用法可以看文件,下面是這個例子中的用法:

ok,這個檔案已經完完全全刪掉了,版本庫已經不再占用空間了。

永久刪除git倉庫中的檔案

有時候我們不小心將一些敏感的內容或者給是非常大而又不需要的檔案不小心新增到git倉庫了,想要把他們從git倉庫中刪除,單單通過git rm是達不到目的的,git rm的作用只是刪除了工作目錄下的內容 生成了下一次提交 刪除檔案 的相關資訊,而之前提交的檔案還原封不動的躺在.git的提交歷史objec...

git 庫永久刪除大檔案

無意中把乙個裝有很多大檔案資料的資料夾 my1202260986 提交了,現在.git有681mb之大 du git hd0 681mb git 不過還沒有push出去。我用如下命令清除了錯誤提交的大檔案 git filter branch index filter git rm r cache i...

Git 永久刪除檔案後找回

情況一 刪除操作已經提交到本地庫 刪除操作提交到暫存區,暫存區提交到本地庫 指標位置指向歷史記錄 1 在工作區建立乙個aaa.txt檔案並且提交到本地庫 2 刪除工作區的aaa.txt,使用git status 檢視命令 3 上圖提示要把工作區的修改提交到暫存區,執行新增到暫存區的操作和從暫存區新增...