当前位置: 首页 > news >正文

乐清手机网站设计湖南网站建设360o

乐清手机网站设计,湖南网站建设360o,代理招商网免费加盟,农村自建房设计图片大全目录 一、问题背景二、问题复现2.1 新建项目2.2 上传大文件2.3 上传结果 三、解决方案3.1 GitLab备份与还原1#xff09;备份2#xff09;还原 3.2 删除方式一#xff1a;git filter-repo 命令【推荐】1#xff09;安装2#xff09;删除本地仓库文件3#xff09;重新关联… 目录 一、问题背景二、问题复现2.1 新建项目2.2 上传大文件2.3 上传结果 三、解决方案3.1 GitLab备份与还原1备份2还原 3.2 删除方式一git filter-repo 命令【推荐】1安装2删除本地仓库文件3重新关联远程仓库4删除远程仓库文件4clean up 清理远程仓库 3.3 删除方式二git branch-filter 命令【不推荐】1删除本地仓库文件2删除远程仓库文件3重新 repack 远程分支到本地 一、问题背景 由于项目在打 Docker 包的时候需要将前端的包也打到 Docker 容器中所以将前端包和前端的 Dockerfile 文件都放在了后端的 Git 目录下。 久而久之由于前端包的更新迭代Git 上面会一直保留前端包的历史版本所以整个后端的 .git 越来越大截至目前已经有 2.44G 了。每次有新的小伙伴加入 git 后都需要花很长时间来拉取代码苦不堪言而且 Jenkins 上面新建项目的拉取也会超时。 二、问题复现 2.1 新建项目 在 GitLab 上新建一个项目 my-test。 我们可以看到新建好的项目默认只有 20KB。 2.2 上传大文件 执行命令将项目克隆到本地 git clone http://xxxx/xxx/xxx.git此时.git 文件夹大小为 30.7KB。 为了更加全面地测试我们创建两个分支并且分别上传文件。 分支、文件结构对应关系如下 dev-test1 分支 | - pdf 文件夹 ​ | - test_1.pdf 文件12.8MB ​ | - test_2.pdf 文件12.8MB dev-test2 分支 | - pdf 文件夹 ​ | - test_1.pdf 文件12.8MB ​ | - test_2.pdf 文件12.8MB 相关命令如下 # 创建dev-test1分支 git checkout -b dev-test1 git add -A . git commit -m update test1 git push origin dev-test1# 创建dev-test2分支 git checkout -b dev-test2 git add -A . git commit -m update test2 git push origin dev-test22.3 上传结果 将大文件上传到 GitLab 后仓库的大小如下 .git11.2MB GitLab11.3MB 三、解决方案 注意操作前要保证是最新版本。 3.1 GitLab备份与还原 1备份 在操作之前我们要先备份 GitbLab 中的项目。最简单的方式就是直接将项目导出来。 在 GitLab 上打开项目进入菜单 Settings - General - Advanced点击 Expand 打开折叠。 点击 Export project。 可以看到提示这个导出是一个异步的操作当导出完毕之后会将通知发送到邮箱。 邮件中会有一个下载链接点击链接下载保存24小时。 下载后文件如下文件名格式为日期_时分秒_用户名_项目名.tar.gz 2还原 点击首页的 New project。 选择 Import project。 选择 GitLab export。 输入项目名称选择我们之前导出的 .tar.gz 文件点击 Import project。 还原完毕分支和大小都在。 3.2 删除方式一git filter-repo 命令【推荐】 git-filter-repo 官网 https://github.com/newren/git-filter-repopython 官网 https://www.python.org/ 注意git-filter-repo 工具需要依赖 Git 和 Python。 1安装 # 安装pip是Python自带的安装工具 pip install git-filter-repo # 查看版本 git-filter-repo --version执行结果 注意git-filter-repo 需要在一个刚刚 clone 下来的仓库中进行操作否则会操作失败。 Aborting: Refusing to destructively overwrite repo history since this does not look like a fresh clone. (expected at most one entry in the reflog for HEAD) Please operate on a fresh clone instead. If you want to proceed anyway, use --force. 2删除本地仓库文件 git clone 到本地后立即执行如下命令 不要做切换分支等操作否则会报错删除重新克隆才行。 # 模糊匹配删除所有pdf文件会同时删除pdf文件夹 git filter-repo --path-glob *.pdf --invert-paths# 补充精确匹配仅删除pdf/test_1.pdf git filter-repo --path-glob pdf/test_1.pdf --invert-paths执行结果如下 git filter-repo 命令本身是用来将处理后的本地仓库重新推送到新的远程仓库用的所以执行命令之后查看 .git/config 配置文件里面远程仓库的内容都被清空了 执行之后查看本地 .git 文件夹大小从 11.2MB 直降至 32.8KB。 3重新关联远程仓库 重新关联远程仓库的命令如下 git remote add origin https://git.xxx.cn/acgkaka/my-test.git4删除远程仓库文件 执行如下命令将本地仓库的改动强制推送到远程仓库即可。 git push --force origin --all执行结果如下 此时GitLab 的远程仓库大小还是 11.2 MB并无效果别担心还有最后一步操作。 4clean up 清理远程仓库 做完上面的操作之后等待半小时是的等待30分钟因为 GitLab 不会清理半小时内提交的文件。 在 GitLab 上打开项目进入菜单 Settings - Repository - Repository cleanup点击 Expand 打开折叠。 在使用 clean up 时需要提交一个文件这个文件就是文件根目录下的 .git/filter-repo/commit-map。 可以看到提示这个导出是一个异步的操作当cleanup完毕之后会将通知发送到邮箱。 邮件中会说明 cleanup 后的仓库大小为 0.1MB。 再去 GitLab 查看远程仓库大小从 11.3MB 直降至 51KB瘦身成功。 经验证这种方式删除掉的历史文件即使有其他成员的本地仓库有未提交的版本需要复制出来删除本地仓库重新克隆后再粘贴提交。 3.3 删除方式二git branch-filter 命令【不推荐】 注意 目前经过尝试发现 git branch-filter 虽然可以删除分支中的文件历史、提交记录但是并不会减少 GitLab 中远程仓库的大小。 1删除本地仓库文件 可以直接操作删除所有分支的文件但是要注意必须保证所有分支都是最新代码才行。 也可以切换到具体分支执行 git pull 拉取最新代码后再进行删除只要去除后面的 -- --all即可。 # 模糊匹配删除所有pdf文件会同时删除pdf文件夹 git filter-branch --force --index-filter git rm --cached --ignore-unmatch *.pdf --prune-empty --tag-name-filter cat -- --all# 补充精确匹配仅删除pdf/test_1.pdf git filter-branch --force --index-filter git rm --cached --ignore-unmatch pdf/test_1.pdf --prune-empty --tag-name-filter cat -- --all执行结果如下可以看到 dev-test1 和 dev-test2 分支被重写了。 2删除远程仓库文件 执行如下命令将本地仓库的改动强制推送到远程仓库即可。 # 推送本地所有分支到远程 git push --force --all执行结果如下可以看到 dev-test1 和 dev-test2 分支被强制更新了。 我们可以去 GitLab 上面看下提交记录如果之前的提交只涉及被删除文件的话对应提交记录就会被清空如果提交中除了被删除文件之外还包含其他文件那么提交记录和其他文件都会被保留不受影响。 3重新 repack 远程分支到本地 执行如下命令删除 refs/original 文件夹并重新更新远程仓库到本地。 git for-each-ref --formatdelete %(refname) refs/original | git update-ref --stdin git reflog expire --expirenow --all git gc --prunenow执行之后查看本地 .git 文件夹大小从 11.2MB 直降至 32KB。 再次声明这种方式虽然可以删除分支中的文件历史、提交记录但是并不会减少 GitLab 中远程仓库的大小。远程仓库大小依然为 11.3MB。有大佬知道后面怎么处理的欢迎评论补充 整理完毕完结撒花~ 参考地址 1.使用 git-filter-repo 清理 git 历史记录https://nyakku.moe/posts/2020/06/12/use-git-filter-repo-clean-git-history.html 2.利用git-filter-repo无缝迁移git项目https://zhuanlan.zhihu.com/p/465078705 3.git: 如何减少.git文件的大小https://blog.csdn.net/LOI_QER/article/details/107911115 4…git文件过大github仓库瘦身https://blog.csdn.net/luchengtao11/article/details/82531044 5.从Git仓库GitLab中彻底去除大文件https://zhuanlan.zhihu.com/p/589903338
http://www.yutouwan.com/news/218506/

相关文章:

  • 网站首页模板设计图济宁网络
  • 厦门人才网官方网站请解释网站开发的主要流程
  • 新建网站站点的微信公众号链接网站开发
  • 河津网站制作网站商城微信支付接口
  • 网站建设需求文件国内做的好的电商网站有哪些
  • 哪个网站有学做吃的什么是设计方案
  • 深圳网站建设 贴吧家用电脑网站建设
  • 建设银行官方网站地址微信投放广告多少钱
  • 和平东路网站建设建设工程+质量+协会网站
  • h5建站工具网页制作教程视频简单
  • 2017网站建设报价单免费做网站推荐
  • 徐州网站建设培训千图网素材下载网站
  • 天天爱天天做视频网站做网站 什么主题较好
  • 建设网站火车票预订做网站 商标分类
  • 网站开发关于安全问题app制作手机版
  • 网站的在线支付模块怎么做电商网站建设代理商
  • 浙江网站建设电话wordpress admin-ajax.php远程sql注入漏洞
  • 封面制作网站建立自己的网站软件有
  • 网站建设是不是可以免费建站做外贸应该去什么网站
  • 固始网站建设公司阿里云网站方案建设书
  • 网站开发环境怎么写做网站用到什么开发语言
  • 网站建设收费标准方案姓氏头像在线制作免费生成图片
  • 哪些属于功能型网站网站建设案例教程试卷
  • 佛山建设外贸网站公司吗设计网站专业
  • 有什么做ppt参考的网站深汕特别合作区房价
  • 好听大气的公司名字绍兴网站建设优化
  • 深圳做网站公司多少钱微信里的小程序怎么删了
  • 网站开发入门书彩票网站开发 极云
  • 高校思政教育工作网站建设中山手机网站建设费用
  • 医疗 企业 网站制作投资手机网站源码