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

原创
2014/04/02 22:57
阅读数 2.5W

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

展开阅读全文
打赏
12
30 收藏
分享
加载中
反正我就知道推送node的项目的时候都忽略node_module
2015/09/05 01:14
回复
举报
有必要。
2015/01/27 14:40
回复
举报
JFinal博主

引用来自“再踏”的评论

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

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

2014/04/03 11:54
回复
举报
确实有这种必要,不过这样感觉git的意义一小半都没了
2014/04/03 11:48
回复
举报
1024
2014/04/03 11:31
回复
举报
1024个赞
2014/04/03 00:18
回复
举报
更多评论
打赏
6 评论
30 收藏
12
分享
返回顶部
顶部