文档章节

改写历史,永久删除git库的物理文件

JFinal
 JFinal
发布于 2014/04/02 22:57
字数 249
阅读 1.2W
收藏 28

     发布在 github 上的项目 jfinal 最初没有使用maven进行管理,所以 WEB-INF/lib 留存有 jar 文件,使用 maven进行库文件管理以后这些 jar 不再有用,故删之。

    但即便是删掉,库中还是会存有这些文件的物理文件,占有一定的存储空间,从而 git clone 下来时的总文件大小达到 29M之多,git osc 速度算快的,但 github.com简直就无法忍受了,所以通过 git help filter-branch 找到改变历史的办法,具体操作如下:

git clone git@github.com:jfinal/jfinal.git
git filter-branch --tree-filter 'rm -f WebRoot/WEB-INF/lib/*.jar' --tag-name-filter cat -- --all
git push origin --tags --force
git push origin --all --force

   删完后再 git clone 整个文件大小缩减到 940K,git clone 秒秒钟搞定,即便是 github 也是极速,打完收工

JFinal官方网址:http://www.jfinal.com

© 著作权归作者所有

JFinal

JFinal

粉丝 4119
博文 5
码字总数 4318
作品 4
海淀
CTO(技术副总裁)
私信 提问
加载中

评论(6)

啦啦啦拉拉
啦啦啦拉拉
反正我就知道推送node的项目的时候都忽略node_module
Jason_hu
Jason_hu
有必要。
JFinal
JFinal 博主

引用来自“再踏”的评论

确实有这种必要,不过这样感觉git的意义一小半都没了

一般不会这么用,这样使用的场景是当你历史上 push 了一个非常大的文件,后来这文件废弃,但始终会影响 clone 的速度,另一个场景是历史上可能 push 了某些需要保密的敏感文件需要彻底干掉

惊鸟
惊鸟
确实有这种必要,不过这样感觉git的意义一小半都没了
k
killerg
1024
如梦技术
如梦技术
1024个赞
BFG Repo-Cleaner - 快速清除Git提交历史中的特定文件

BFG Repo-Cleaner(快速清除Git提交历史中的特定文件) 有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的),而且上传的文件又特别大的时候, 这...

白石
2019/04/09
268
0
从git中永久删除文件以节省空间

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

妈妈说名字长长长能引来美女123
2016/12/08
174
0
如何控制 Git 库的膨胀? GC 一步搞定!

相信每个公司都有自己的官网。小明公司也不例外,不过小明却发现公司的“猿”哥哥将许多视频放在了代码仓库里,导致原本只有代码的仓库从早期的几十MB,飙升至 1G以上,变得无比臃肿(或者是慢...

码云Gitee
2018/09/13
0
0
git学习笔记——查看git历史记录

1.查看Git日志: 命令:git log 默认不加参数,git日志会按照最新的日期从上往下显示 参数:-p 显示版本间的代码差异 -数字 显示部分的提交 -哈希值 显示指定的版本 2.指定查找范围: --sinc...

若晨辰
2013/08/15
2W
0
Git+Gerrit如何永久删除历史文件(大文件/私密文件)

一、前言 前几天同事在拉取一个项目的Git仓库时,发现项目拉取速度非常慢,半个钟都无法拉取下来,并且发现一直卡在了99%的进度上。 开始时以为是Git网络出问题了,检查了其它仓库却都可以正...

开发的猫
2018/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java 获取json某个值

String jsonStr = "{\"name\":\"小可爱\",\"course\":\"191010入门课程4年级3讲\",\"teacherPhone\":\"11111111111\"}";JSONObject jsonObject = JSONObject.parseObject(jsonStr); ......

varju
44分钟前
55
0
如何使用printf系列便携地打印size_t变量?

我有一个size_t类型的变量,我想用printf()打印它。 我使用什么格式说明符来便携地打印它? 在32位机器中, %u似乎是正确的。 我用g++ -g -W -Wall -Werror -ansi -pedantic ,没有任何警告。...

javail
50分钟前
67
0
Hostbuddy for Mac(host文件编修改管理工具) v2.2.4永久激活版

想要快速更换你Mac电脑中的host文件么?host文件编修改管理工具哪款好用? Hostbuddy Mac版好用吗?在这款host文件管理软件Hostbuddy for Mac中,有着简单轻松使用方法,可以通过软件快速更新...

mac小叮当
今天
48
0
正则表达式匹配DNS主机名或IP地址?

是否有人方便使用与任何合法DNS主机名或IP地址匹配的正则表达式? 编写一个可以在95%的时间内正常工作的代码很容易,但是我希望得到经过充分测试的东西,以完全匹配最新的DNS主机名RFC规范。...

技术盛宴
今天
55
0
Vue中你可能认为是bug的情况原来是这样的

前言 我们知道Vue框架剧本双向数据绑定功能,在我们使用方便的同时,还有一些细节问题我们并不知道,接下来一起探讨一些吧 双向数据绑定 js变量改变影响页面 页面改变影响js变量 Vue2是如何做...

涂老师
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部