git仓库清理瘦身解决 .git文件夹过大的问题

这篇具有很好参考价值的文章主要介绍了git仓库清理瘦身解决 .git文件夹过大的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git仓库清理找了很多资料和方案都没有很完美执行成功的;现在找到一个完美方案,分享给大家;希望能帮助大家

问题

1、gitlab代码开发了仓库开发了五年了,代码只有10M;clone的时候要700多兆很浪费时间
2、创建分支和切换分支耗时,导致电脑崩溃
3、公司内部接入codereview服务;因为项目过大服务器承载不了,接入失败

git仓库过大的原因:
1、历史提交的文件,后来删除了,但是.git\objects\pack还会记录保持这些文件
2、git rev-list --objects --all | grep “$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -500 | awk ‘{print$1}’)”
执行上面命令,查看前500个大文件;发现全是dist目录的文件上传有2000多个
git pack文件过大,git,git,github,java

解决方案:

方案一:(2个小时耗时,不保证成功)

下面通用方案不行了;这种方法清理非常耗时而且代码分支多的不容易成功

清理文件
git filter-branch --force --index-filter "git rm -rf --cached --ignore-unmatch 文件/文件夹" --prune-empty --tag-name-filter cat -- --all
# 查看历史大文件
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
# 从历史中删除 target/ 这个文件夹
git filter-branch --force --index-filter 'git rm -r  --cached --ignore-unmatch target/' --prune-empty --tag-name-filter cat -- --all
# 执行仓库压缩
git gc --prune=now
# 推送到远程仓库
git push origin --force --all

推荐方案二BGF工具清理:(亲测有效10分钟搞定)

必备条件
1、安装java环境(java安装教程)
2、下载好bfg的jar包 (下载链接-官网右上角 download 按钮进行下载);

第一步:克隆你的项目.git文件

加–mirror是只clone你项目的.git文件
git pack文件过大,git,git,github,java

第二步:把你下载的bfg的jar包复制到这个项目同目录下

git pack文件过大,git,git,github,java

第三步:执行命令查看大文件的目录(500个文件)

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -500 | awk '{print$1}')"

git pack文件过大,git,git,github,java

第四步:最重要的一步

java -jar bfg-1.14.0.jar --delete-folders {dist} --no-blob-protection frontend_saas.git

一分钟左右1500个dist目录里的文件会全部清除很快;比git filter-branch两个小时快多了

第五步:执行GC压缩

git reflog expire --expire=now --all && git gc --prune=now --aggressive

第六步:推送到远程

git push --mirror

第七步:注意项目开发的的小伙伴要全部重新clone项目开发;注意一定不能在原来400多兆都是项目里开发提交,这样项目的垃圾文件又会恢复,前功尽弃;

git pack文件过大,git,git,github,java文章来源地址https://www.toymoban.com/news/detail-783687.html

总结:到这里就大功告成了;446M的项目清理之后只有23.7M干净很多;

到了这里,关于git仓库清理瘦身解决 .git文件夹过大的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • git 删除仓库中多余的文件或者文件夹

    git 删除仓库中多余的文件或者文件夹

    目录 问题 解决方案 第一步:同步代码 第二步:删除文件 第三步:提交 第四步:推送远端 在项目开发测试阶段,将无意间将本地敏感的、或无用的文件或目录不小心提交到远程仓库,该怎么解决呢。  先pull远程代码,保持同步。 填写备注信息。 推送成功刷新仓库。 如果

    2024年01月16日
    浏览(46)
  • git 怎么导入本地仓库-将本地文件夹添加到Git仓库

    git 怎么导入本地仓库-将本地文件夹添加到Git仓库

    1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明 4、关

    2023年04月11日
    浏览(11)
  • 【git】按需下载仓库某个文件夹

    在 github 有一个很大的仓库,但是自己真正使用的只有某几个文件夹,那么如何只下载这几个文件夹呢? 这里就要使用 git 的 sparse-checkout 功能 下面主要介绍三种情况 本地没有此仓库代码 本地已有此仓库代码 禁用该功能 本地建立一个新的仓库 添加远程仓库地址 这里的远程

    2024年02月11日
    浏览(65)
  • git删除远程仓库上已提交的文件/文件夹

    git删除远程仓库上已提交的文件/文件夹

    由于给本地项目配置远程库,误提交很多不应该提交的文件或文件夹,比如 .idea .settings .project .iml 以及日志等文件。以及由于 .gitignore 文件配置不正确很有可能导致某些不需要的目录上传到 git 远程仓库上了。除了注意配置 .gitignore 文件外,以下是解决办法。 提交了文件到自

    2024年02月11日
    浏览(20)
  • Git克隆远程仓库中的指定文件或者文件夹

    我们在日常需求中,可能会仅仅只想拉去某个仓库中的指定文件或者文件夹到本地的需求,这里记录一下操作方法 1、创建文件夹 一般来说,在克隆远程仓库之前会在自己电脑本地新建一个文件夹用于存放,可以自己手动新建一个文件夹,也可以使用命令: 2、进入到创建的

    2024年02月11日
    浏览(84)
  • git 上传文件夹至远端仓库的方法

    git 上传文件夹至远端仓库的方法

    上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明: 1、登录GitHub网站(账户/密码) 2、创建一个新的空白项目(或者已有的项目)hello-world 分支是master ,这里默认即可。 任务则是将一个srccode的文件夹上传上去,文件夹内容可以很多,这里模拟

    2024年04月23日
    浏览(28)
  • 解决git clone后对应文件夹没有.git文件

    解决git clone后对应文件夹没有.git文件

    使用git clone 命令后发现对应文件夹没有找到.git文件 这是因为.git文件默认是隐藏的,如果想看到,需要我们设置显示隐藏的文件夹 通过以上操作就能够将解决找不到.git文件的问题。 注意:.git文件为版本库,版本库中储存了配置信息,日志信息等,不需要我们修改。

    2024年02月11日
    浏览(47)
  • 解决git文件夹不显示图标问题

    解决git文件夹不显示图标问题

    安装git和tortoiseGit之后,没有出现文件夹绿色图标或者红色图标,如图 一.修改注册表 win+R键打开运行窗口,输入regedit.exe 注册表,如图 找到路径 计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorer 的Max Cached Icons选项,如果不存在,新建-字符串值 ,名字Max Cached Ic

    2024年02月12日
    浏览(48)
  • 【Git】Git瘦身,清理Git历史提交/.git大文件清理(云效、UI 自动化项目)

    【Git】Git瘦身,清理Git历史提交/.git大文件清理(云效、UI 自动化项目)

    目前项目是存在云效(codeup.aliyun.com)上 本地清理后,还需要到云效上清理「存储空间管理」 一、清理/瘦身效果 清理前:451.11M 清理后:12.68M 结论:清理效果喜人,清除了97%无用大文件提交 🥳 二、到底是什么在占空间? 在项目不断提交过程中,提交过一些大文件如:apk,

    2024年02月02日
    浏览(17)
  • Git无法提交空文件夹问题解决方案

    Git无法提交空文件夹问题解决方案 在使用Git进行版本控制时,经常会遇到需要提交空文件夹的情况,特别是在Java项目开发中。然而,Git本身对空文件夹的处理并不友好,无法直接提交空文件夹到版本库中。本文将介绍一种解决方案来处理这个问题,并提供相应的源代码示例

    2024年02月03日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包