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 yet

git 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 中上传过大的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/308242.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ源码 Consumer 消费者源码架构分析

前言 消息消费者 MQConsumer 即消息的消费方&#xff0c;主要负责消息消息生产者 MQ Producer 投递的消息。它的源码架构如下图&#xff0c;以常用的消费者实现类 DefaultMQPushConsumer 视角分析消费者的源码架构&#xff0c;介绍消费者核心数据结构。 DefaultMQPushConsume…

蓝凌EIS智慧协同平台 ShowUserInfo.aspx SQL注入漏洞复现

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为企业提供高效协同办公和团队合作的产品。该平台集成了各种协同工具和功能,旨在提升企业内部沟通、协作和信息共享的效率。 0x02 漏洞概述 由于蓝凌EIS智慧协同平台 ShowUserInfo.aspx接口处未对用户输入的SQL语句进行过滤或验证…

【深入浅出JVM原理及调优】「搭建理论知识框架」全方位带你探索和分析JMM并发模型之(重排序机制)

全方位带你探索和分析JMM并发模型之重排序机制 专栏介绍前提准备面向人群知识脉络重排序数据依赖性读后写依赖&#xff08;Read-After-Write Dependency&#xff09;写后读依赖&#xff08;Write-After-Read Dependency&#xff09;写后写依赖&#xff08;Write-After-Write De…

离线AI聊天清华大模型(ChatGLM3)本地搭建

在特定的情况下&#xff0c;要保证信息安全的同时还能享受到AIGC大模型带来的乐趣和功能&#xff0c;那么&#xff0c;离线部署就能帮助到你&#xff0c;最起码&#xff0c;它是一个真正可用的方案。 大模型本身清华的 (ChatGLM3)&#xff0c;为的是对中文支持友好&#xff0c…

重学JavaScript高级(八):ES6-ES12新增特性学习

ES6-ES12新增特性学习 ES6–对象字面量增强 属性的简写方法的简写计算属性名 let name "zhangcheng" //我想让sum作为obj的key值 let objKey "sum" let obj {//属性名的简写name//等同于name:name//方法的简写running(){}//等同于running:function()…

寒武纪显卡实现softmax算子

寒武纪显卡实现softmax基本逻辑 寒武纪实现softmax包括下面5个步骤&#xff0c;我们也采取5个kernel来实现softmax&#xff1a; unionMaxKernel(float* middle, float* source1, int num)&#xff0c;这个kernel使用的任务类型是union1&#xff0c;其中middle的长度为taskDim&…

如何设置电脑桌面提醒,电脑笔记软件哪个好?

对于大多数上班族来说&#xff0c;每天要完成的待办事项实在太多了&#xff0c;如果不能及时去处理&#xff0c;很容易因为各种因素导致忘记&#xff0c;从而给自己带来不少麻烦。所以&#xff0c;我们往往会借助一些提醒类的软件将各项任务逐一记录下来&#xff0c;然后设置上…

时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解

时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 【原创】CPO-VMD【24年新算法…

Mysql系列-1.Mysql基本使用

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

【揭秘APT攻击】——内网渗透实战攻略,带你领略网络安全的绝密世界!

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 介绍 什么是内网&#xff1f; 什么是内网渗透&#xff1f; 内网渗透的目的&#xff1a; 内网…

leetcode:1716. 计算力扣银行的钱(python3解法)

难度&#xff1a;简单 Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。 最开始&#xff0c;他在周一的时候存入 1 块钱。从周二到周日&#xff0c;他每天都比前一天多存入 1 块钱。在接下来每一个周一&#xff0c;他都会比 前一个周一 多存入 1 块钱。 给你 n &am…

微服务架构RabbitMQ实现CQRS模式

在现代软件开发中,微服务架构和CQRS模式都是备受关注的技术趋势。微服务架构通过将应用程序拆分为一系列小型、自治的服务,提供了更好的可伸缩性和灵活性。而CQRS模式则通过将读操作和写操作分离,优化了系统的性能和可维护性。本文小编将为大家介绍如何在ASP.NET Core微服务…

机器学习中的隐马尔可夫模型及Python实现示例

隐马尔可夫模型&#xff08;HMM&#xff09;是一种统计模型&#xff0c;用于描述观测序列和隐藏状态序列之间的概率关系。它通常用于生成观测值的底层系统或过程未知或隐藏的情况&#xff0c;因此它被称为“隐马尔可夫模型”。 它用于根据生成数据的潜在隐藏过程来预测未来的观…

第三次面试总结 - 吉云集团 - 全栈开发

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对专栏 “本人真实面经” 很感兴趣o (ˉ▽ˉ&#xff1b;) 专栏 —— 本人真实面经&#xff0c;更多真实面试经验&#xff0c;中大厂面试总结等您挖掘 目录 总结&#xff08;非详细&#xff09; 面试内…

AIGC无人直播系统技术

随着信息技术的快速发展和互联网的普及&#xff0c;直播行业迎来了蓬勃发展的机遇。然而&#xff0c;传统的直播方式存在一些局限性&#xff0c;如场地限制、设备携带不便等问题。为了解决这些问题&#xff0c;AIGC推出了一项创新性的无人直播系统技术。 AIGC无人直播系统技术…

FMEA的定义以及应用目标——SunFMEA软件

故障模式与影响分析&#xff08;Failure Modes and Effects Analysis&#xff0c;简称FMEA&#xff09;是一种预防性的质量工具&#xff0c;用于识别和评估产品设计、生产和使用过程中可能出现的故障模式及其对系统性能的影响。通过对故障模式的系统化分析和评估&#xff0c;FM…

​iOS 应用上架指南:资料填写及提交审核

目录 摘要 引言 打开appuploader工具&#xff0c;第二步&#xff1a;打开appuploader工具 第五步&#xff1a;交付应用程序&#xff0c;在iTunes Connect中查看应用程序 总结 摘要 本文提供了iOS新站上架资料填写及提交审核的详细指南&#xff0c;包括创建应用、资料填写-…

震惊!居然有人给 Raspberry Pi 5 做 X 射线!

Jeff Geerling 会做一些莫名其妙的怪事&#xff0c;比如用信鸽来对抗网速&#xff0c;不过这也是我们喜欢他视频的原因。最近&#xff0c;杰夫对 Raspberry Pi 5 进行了 X 光透视&#xff0c;揭示了 Raspberry Pi 5 最新、最强大的计算机内部的秘密。 震惊&#xff01;居然有人…

软通测试岗面试内部资料

基础性问题 1.你对加班怎么看 2你的优势有哪些 3.你的缺点是什么 4.最有成就感的事情是什么 5.你的职业规划是什么 6离职原因是什么 7.还有什么想问我们的吗 8.你有其他的 offer 吗 专业性问题 9.HTTPS 和 HTTP 的区别 10.HTTPS 的工作原理 11.客户端在使用 HTTPS …

认识Linux指令 “zip/unzip” 指令

01.zip/unzip指令 语法&#xff1a; zip 压缩文件.zip 目录或文件 功能&#xff1a; 将目录或文件压缩成zip格式 常用选项&#xff1a; -r 递归处理&#xff0c;将指定目录下的所有文件和子目录一并处理 举例 将test2目录压缩&#xff1a;zip test2.zip test2/* 解压到…