从git中永久删除文件以节省空间

原创 2009年08月04日 13:47:00

 


在使用版本管理工具的过程中我们会碰到这样的问题:不小心把一个不该加入版本管理的文件加进去了,有时候这个文件很大,也许我们整个版本库才几百 K,但加进去这个没用的文件却有好几百M,我可不想因为这么个破烂东西把整个版本库整个硕大无比,以后维护备份都不方便;还有时候是不小心把一个敏感文件 加进去了,比如里面写了信用卡密码的文本文件。

这时候我们希望能把它从版本库中永久删除不留痕迹,不仅要让它在版本历史里看不出来,还要把它占用的空间也释放出来。

在svn中的办法是把整个版本库dump出来filter一下再load回去。git中可以用下面的方法来实现:

我们先创建一个试验用的版本库,并往里面提交一个10M的大文件再删除:




这时候我们看看版本库的大小:



很明显虽然testme.txt已经被删除了,但是因为版本历史里曾经有过这个文件,所以git仍然把它存在库中,以后可以通过它再把它恢复回来。

但我实在是不希望这么一个空版本库占用我10M宝贵的硬盘空间,所以我要把它全删掉,这就要用到git的filter-branch命令了。具体这个命令的用法可以看文档,下面是这个例子中的用法:





 

OK,这个文件已经完完全全删掉了,版本库已经不再占用空间了。

相关文章推荐

Git从库中移除已删除大文件

写在前面大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件。以后不管是拷贝,还是push/pull都比较麻烦。今天在上传工程到github上,发现最大只...

如何在git中删除指定的文件和目录

部分场景中,我们会希望删除远程仓库(比如GitHub)的目录或文件。使用`git rm xxx`,就可以快速实现...
  • ppppfly
  • ppppfly
  • 2016年11月09日 17:43
  • 17540

从git中永久删除文件以节省空间

在使用版本管理工具的过程中我们会碰到这样的问题:不小心把一个不该加入版本管理的文件加进去了,有时候这个文件很大,也许我们整个版本库才几百 K,但加进去这个没用的文件却有好几百M,我可不想因为这么个破烂...

永久删除git库中的所有大文件或者机密文件

永久删除git库中的所有大文件或者机密文件有时我们忘记了在gitignore中添加大文件或者二进制文件或者记录账号密码的文件,最后又不小心把他们commit了,怎么办?...

Git中删除大文件或清除污染文件

有时候,如果gitignore没有写好,或者自己在某些目录下放入了一个大文件,而同时又已经commit或者push到仓库里了,很容易导致仓库容量越来越大,同时你本地的.git里的pack文件也会大得一...
  • vite_s
  • vite_s
  • 2016年08月25日 16:35
  • 1350

彻底删除GIT中的文件,节省空间

不小心上传了个.SQL,du -sh 查看,库有60M, 打算从GIT库里彻底删掉它,查了好久,这么进行: git filter-branch --index-filter 'git rm -r -...

Git清理本地缓存命令

git clean -df 使用这个命令可以清理Git的本地缓存,腾出一部分硬盘空间。
  • skykingf
  • skykingf
  • 2016年06月01日 15:07
  • 13072

Git 永久删除文件

简略版假设要删除的文件是password.txt,运行如下命令:git filter-branch --force --index-filter 'git \ rm --cached --ignore...
  • lwfcgz
  • lwfcgz
  • 2015年10月27日 20:17
  • 2108

git丢弃本地修改的所有文件(新增、删除、修改)

本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令:git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态 git stash #把...

内核管理-之进程虚拟内存-基于linux3.10

关于启动过程内存管理见《内存管理-之启动》 关于内核空间内存管理见《内存管理-之内核内存管理》 如果需要,内存管理五章整理成pdf了,下载地址http://download.csdn.net/de...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从git中永久删除文件以节省空间
举报原因:
原因补充:

(最多只允许输入30个字)