git永久删除文件

在使用版本管理工具的过程中我们会碰到这样的问题,不小心把一个不该加入版本管理的文件加进去了,有时候这个文件很大,也许我们整个版本库才几百 KB,但加进去这个没用的文件却有好几百MB,因为这一个文件把整个版本库搞得硕大无比,以后维护备份很不方便;还有时候是不小心把一个敏感文件 加进去了。这时候我们希望能把它从版本库中永久删除不留痕迹,不仅要让它在版本历史里看不出来,还要把它占用的空间也释放出来。


在svn中的办法是把整个版本库dump出来filter一下再load回去。


git中可以用下面的方法来实现:

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch path/to/your/file' HEAD
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值