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

GIT - 清除历史 Commit 瘦身仓库

目录

一.引言

二.仓库清理

◆ 创建一个船新分支

◆ 提交最新代码

◆ 双指针替换分支

三.总结


一.引言

由于项目运行时间较长,分支较多,且分支内包含很多不同的大文件,随着时间的推移,历史 Git 库的容量日渐增发,objects 里 pack 就高达 3G +,如果从头往下 pull 项目要花好久,下面开始项目瘦身。

Tips:

 请确保待瘦身删除内容不涉及到 git reset 回退且不会再用到,否则删除了无法恢复

二.仓库清理

网上大佬们给了几种清理方法:

filter-branch: filter-branch 剔除指定的类型文件,并重写commitId。

BFG Repo-Cleaner: 仓库清理工具,筛选清理大文件对象。

这里博主直接偷懒了,由于之前很多提交已经无关紧要,所以我们直接将之前的提交抹去

◆ 创建一个船新分支

--orphan 会创建一个全新的分支,其与其他分支都没关系,也没有任何提交记录。可以理解为是一个纯净的空分支,我们后续只保留最新代码在该分支。

git checkout --orphan <new-branch-name>=> Switched to a new branch 'CleanGit'

◆ 提交最新代码

-A 会把本地的代码、文件全部推送到当前分支,在未 commit 之前,当前分支包含 0 个 commit,是全新的分支。

git add -A
git log=> fatal: your current branch 'CleanGit' does not have any commits yetgit commit -am "Initial commit"=> [CleanGit (root-commit) 96dc82a] Initial Commit
=> 137 files changed, 21462 insertions(+)

◆ 双指针替换分支

删除本地分支 -> 将当前分支重命名 -> 强制推送至远程分支,这个有点像 python 的双指针赋值 a, b = b, a,相当于做了一次轮转,把老的 commit 全部 -f 冲掉了。

git branch -D <old-branch-name>
git branch -m <old-branch-name>
git push -f origin <old-branch-name>

三.总结

重复上述步骤,把 commit 多的分支清空或者删除,缩减 git 容量。不过最好还是在根源处避免在 git 中上传过大的文件。

http://www.lryc.cn/news/277180.html

相关文章:

  • 物联网产品中,终端、网关、协议、PaaS、SaaS之间的关系
  • 6款实用的Git可视化管理工具
  • python_selenium零基础爬虫学习案例_知网文献信息
  • MindSpore Serving基于昇腾910B实现大模型部署
  • mysql原理--InnoDB的Buffer Pool
  • Redis不同环境缓存同一条数据,数据内部值不同
  • MySQL之导入、导出远程备份
  • OpenGL学习笔记-Blending
  • 支持 input 函数的在线 python 运行环境 - 基于队列
  • 欧拉Euler release 21.10 (LTS-SP2)升级openssh至9版本记录
  • php 数组中的元素进行排列组合
  • Python从入门到网络爬虫(OS模块详解)
  • 人机交互不是人机融合智能
  • RabbitMQ解决消息丢失以及重复消费问题
  • docker 安装redis集群
  • 锂电池制造设备中分布式IO模块优势
  • Android Room数据库升级Migration解决方案
  • 离线安装docker和docker-compose
  • 奇怪的事情记录:外置网卡和外置显示器不兼容
  • 【大数据进阶第三阶段之Hive学习笔记】Hive基础入门
  • 第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯
  • react native中使用tailwind并配置自动补全
  • 数据分析——火车信息
  • Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
  • Asp .Net Web应用程序(.Net Framework4.8)网站发布到IIS
  • vue element plus Typography 排版
  • 理论U3 决策树
  • Redis 常用操作
  • c# 使用Null合并操作符例子
  • 【Docker】docker部署conda并激活环境