从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工作空间中的修改 git的工作流程可以认为有3个:工作空间→暂存区→版本库 撤销工作空间的修改内容的方法有2中: 1. 将更改后的文件直接删除,而后执行:> git reset --h...
  • u011290532
  • u011290532
  • 2016年08月06日 22:15
  • 600

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

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

从Git版本控制中删除文件

如果你想把一个文件从版本控制中移除,并且保留本地的文件,首先需要把这个文件加入到gitignore文件中。然后执行以下命令就可以了。git rm file_path --cached以上命令将file...
  • u012307002
  • u012307002
  • 2017年02月06日 18:07
  • 1717

Git的管理修改、撤销修改、删除文件

管理修改  下面的内容需要你掌握暂存区的知识,我就默认你已经完全掌握了暂存区的概念。现在我们要讨论的是,为什么Git比其他版本控制系统设计得优秀?因为Git跟踪并管理的是修改,而非文件。   为什么...
  • mj_ww
  • mj_ww
  • 2016年11月13日 12:28
  • 5962

git 删除已经 add 的文件

使用 git rm 命令即可,有两种选择, 一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除; 一种是 git rm --f "文件路径",不仅将该文件从缓...
  • yang3wei
  • yang3wei
  • 2013年07月21日 18:45
  • 49391

git 删除文件后如何恢复

有时候不小心在git中rm了文件。怎么恢复呢?别急,咱们一步步来。首先git status一把,看看此时工作区的状态[xxx@xxx static_files]$ git status # On br...
  • bitcarmanlee
  • bitcarmanlee
  • 2016年05月04日 15:36
  • 12325

Git 删除文件

使用git如何批量对文件进行rm操作  用了一段时间git了,一直有个问题没解决。当做了一些修改时,一般会直接 "git add ." 先将文件staged起来。但是"git add ."对被删...
  • moyunfei1987
  • moyunfei1987
  • 2014年07月18日 10:31
  • 689

git删除未跟踪文件

# 删除 untracked files git clean -f   # 连 untracked 的目录也一起删掉 git clean -fd   # 连 git...
  • uhippo
  • uhippo
  • 2015年06月04日 18:52
  • 10494

git 常用命令(含删除文件)

原文地址http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html
  • mulingf
  • mulingf
  • 2014年04月03日 20:59
  • 606

git 删除无用目录,添加忽略文件

在已经提交的git代码管理里删除不想提交的目录或文件1.在.gitignore里面删除想要删除的文件*(没有就不用)(我以app/build 文件夹为例子) 2.git add app/build...
  • CJQ316210
  • CJQ316210
  • 2016年09月23日 10:51
  • 956
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从git中永久删除文件以节省空间
举报原因:
原因补充:

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