文档章节

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

JFinal
 JFinal
发布于 2014/04/02 22:57
字数 249
阅读 7226
收藏 25

     发布在 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

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

评论(6)

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

引用来自“再踏”的评论

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

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

惊鸟
惊鸟
确实有这种必要,不过这样感觉git的意义一小半都没了
k
killerg
1024
如梦技术
如梦技术
1024个赞
从git中永久删除文件以节省空间

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

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

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

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

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

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

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

开发的猫
03/21
0
0
svn 迁移到git

1.物理环境 Git–server Centos5.8 192.168.1.245Svn–server Centos5.8 192.168.1.108 2.建立SVN用户到git用户的映射文件 建立SVN用户到git用户的映射文件,文件格式如下: cat /tmp/useri...

linuxprobe16
2016/11/24
16
0

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)

描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你...

honeymose
今天
5
0
java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
23
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
18
0
my.ini

1

architect刘源源
今天
16
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部