首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

$ wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar2、clone 仓库在 clone 仓库的时候推荐使用...Git 库中的历史版本、清除废弃的、过期的对象,这个过程会耗费较长的时间。...图片每次提交都会生成一次快照,这些快照可能包含大量的文件和代码,频繁提交会导致版本库中快照的数量增加。Git使用的是一种增量存储方式,每次提交只存储发生了变化的文件和代码。...但是,如果频繁提交的变化较小,比如只是修改了几个字符或者行末空格,Git可能无法正确地检测出这些变化,而将整个文件都存储起来,也会增加了.git文件的大小。...git branch -D git branch -m git push -f origin 在推完代码后我再次去看了下仓库的大小

1.1K30

从仓库中移除敏感信息

你无法对仓库中的现有克隆或分支做任何事情,但可以通过联系 GitHub 支持,永久删除所有存储库的缓存视图并在GitHub上提出请求。...从仓库历史中清除文件 使用 BFG BFG Repo-Cleaner 和 git filter-branch 类似,用于删除不需要的文件,是一种更快速、更简单的替代方法。...使用 filter-branch 警告:如果你在暂存(stash)更改后运行 git filter-branch,你将无法使用其他暂存命令检索你的更改。...如果你的历史记录中尚未拥有敏感数据的存储库本地副本,请将克隆仓库到本地 电脑。...告诉你的同事 rebase 而不是 merge 它们创建的任何分支,这些分支是从旧的(受污染的)存储库历史中创建的。一次合并提交可能会重新引入一些或所有你刚才去除清除问题的受污染历史记录。

96620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BFG Repo-Cleaner - 快速清除Git提交历史中的特定文件

    的另一种选择 BFG是git-filter-branch之外的一种更简单、更快的方法,可以清除Git存储库历史中的不良数据: 删除 大文件 删除 密码、凭证 和其他 私人数据 git-filter-branch...这意味着您的普通文件将不可见,但它是存储库Git数据库的完整副本,此时您应该备份它,以确保不会丢失任何东西。...检查存储库以确保您的历史记录已更新,然后使用标准的git gc命令去除不需要的脏数据, git现在将这些脏数据视为多余的需求: $ cd some-big-repo.git $ git reflog expire...无论它们在您的存储库中的任何地方: $ bfg --replace-text passwords.txt my-repo.git 删除Git中所有名为'.git'的文件夹或文件—保留的文件名。...如果某个坏的文件(比如10MB的文件,当您指定--strip-blobs-bigger-than 5M)在受保护的提交中,那么它不会被删除—它将保存在您的存储库中,即使BFG从以前的提交中删除了它。

    3K40

    Git目录为什么这么大

    的目录过大,从git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理 2、Git存储原理 2.1 目录结构 使用版本控制的人都会知道,不管是svn还是更为流行的git,整个工程目录下...,可以存储到专用的文件服务器、对象存储等 如果非要在版本库中存储大文件,更好的方式是通过git-lfs,及时使用 lfs 来追踪、记录和管理大文件。...gitee官方帮助说明文档Git LFS 操作指南 6、其他解决方案 除了上面的操作,还可以利用更为好用的开源效率工具bfg进行清理,参考bfg文档,配置好java环境后,操作如下 # 下载封装好的jar...clone --mirror git://example.com/big-repo.git # 运行BFG来清理存储库 $ java -jar bfg.jar --strip-blobs-bigger-than...my-repo.git # 删除所有大于50M的文件 $ java -jar bfg.jar --strip-blobs-bigger-than 50M my-repo.git # 删除文件夹下所有的文件

    1.3K10

    删除 GitGitHub 中的敏感数据

    今天整理之前的 GitHub 项目,发现自己的一个项目不小心把服务器密钥暴露出来了。幸好是个 private 的库。就着手准备把这个文件删除。...但是在 Git 里删文件似乎不是个容易的事情——由于 Git 会保留历史与版本回溯,所以需要将需要删除的文件在之前的版本中也一并删除掉w 据说正常来讲需要使用 git filter-branch 命令,...好在有一个叫做 BFG 的工具,提供了一种更快、更简单的 git filter-branch 替代方法,用于删除不需要的数据。简单踩了一下坑,做了一下步骤记录。 1. 安装 BFG 2....否则会提示 These are your protected commits, and so their contents will NOT be altered 而无法彻底清除。 3....运行 BFG 万事俱备,准备删除w 删除文件的命令: java -jar bfg的路径/bfg-1.13.0.jar --delete-files 需要删除的文件 删除文件夹的命令: java -jar

    1.4K10

    Git清理commit中历史提交的大文件

    因为git的历史文件都是存在一个文件里的,我们使用下面命令可以找出排名前五的文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3.../bfg-repo-cleaner/ 第一步 下载包文件 直接官网下载即可,bfg-1.13.0.jar 将程序包放到一个文件夹里,为了方便,重命名为bfg.jar 第二步 克隆仓库 clone自己的...git repo,使用--mirror参数 git clone --mirror http://192.168.1.199:8099/hcses/hcses-warehouse.git 第三步 清除大文件...-jar bfg.jar --delete-folders 我是文件夹的名字 hcses-warehouse.git --no-blob-protection 第四步 清理不需要的数据 在完成上面的指令后...,实际上这些数据/文件并没有被直接删除,这时候需要使用git gc指令来清除。

    5.8K10

    Git 如何清理敏感文本

    有时候我们会在属性文件中添加数据库的连接参数等。 但是在提交的时候不小心将这些敏感连接参数和密码也提交到服务器上了。 虽然很多公司都有防火墙只能内部访问,但是还是非常不安全的。...这时候你需要一个 BFG Repo-Cleaner 这个工具了。 这个工具主要用于清理仓库中的敏感文本包括提交历史记录中的,同时也一并将历史记录清理。...同时在 D:\WorkDir\USRealEstate\Source-Code 目录下面创建一个 passwords.txt 文件 运行命令 在控制台中运行下面的命令: java -jar bfg-1.14.0...例如我们需要替换的密码为 jfnsV4yHsDYaX4x9 那么你需要将这个字符串添加到 passwords.txt 后再执行上面的命令。 运行后的结果如上图的内容。...在完成上面的所有替换后,进入仓库分别执行下面的 2 条 git 命令。

    79510

    防止 Git 泄漏的 5 种最佳做法

    无数的开发人员正在使用 Git 进行版本控制,但是许多开发人员对 Git 的工作方式并没有足够的了解。有些人甚至将 Git 和 Github 用作备份文件的工具。...在代码检查阶段可以发现大多数不符合预期的更改。 启用分支限制[9] 可以强制执行分支限制,以便只有部分用户才能推送到代码库中受保护的分支。Gitlab 也有类似的选择。...我们需要做的是从整个 Git 历史记录中删除所有敏感数据。 在进行任何清理之前请记得进行备份,然后在确认一切正常后再删除备份文件。...使用 --mirror 参数克隆一个仓库;这是 Git 数据库的完整副本。...除删除文件外,BFG 还可以用于替换文件中的机密信息。 BFG 保留最新的提交记录。它是用来防止我们犯错误的。我们应该显式地删除文件,提交删除,然后清除历史记录以此删除它。

    2K10

    试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明)

    安装 bfg 传统方式安装(不推荐) 下载安装 Java 运行时 下载安装 bfg.jar 这里并不推荐使用传统方式安装,因为传统方式安装后,bfg 不会成为你计算机的命令。...在实际使用工具的时候,你必须为你的每一句命令加上 java -jar bfg.jar 前缀来使用 Java 运行时间接运行。...将一整夜的工作缩减到不到十分钟。 删除误上传的大文件 使用下面的命令,可以将仓库历史中大于 500M 的文件都删除掉。...删除 walterlv.snk 或 lindexi.snk 文件: 1 > bfg --delete-files {walterlv,lindexi}.snk 比如原来仓库结构是这样的: 1 2...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    71540

    Git 如何清理敏感文本

    有时候我们会在属性文件中添加数据库的连接参数等。 但是在提交的时候不小心将这些敏感连接参数和密码也提交到服务器上了。 虽然很多公司都有防火墙只能内部访问,但是还是非常不安全的。...这时候你需要一个 BFG Repo-Cleaner 这个工具了。 这个工具主要用于清理仓库中的敏感文本包括提交历史记录中的,同时也一并将历史记录清理。...同时在 D:\WorkDir\USRealEstate\Source-Code 目录下面创建一个 passwords.txt 文件 运行命令 在控制台中运行下面的命令: java -jar bfg-1.14.0...例如我们需要替换的密码为 jfnsV4yHsDYaX4x9 那么你需要将这个字符串添加到 passwords.txt 后再执行上面的命令。 运行后的结果如上图的内容。...在完成上面的所有替换后,进入仓库分别执行下面的 2 条 git 命令。

    73760

    CCtalk高可用多媒体服务技术选型与实现

    ,HTTP-FLV,HLS和RTP 下面介绍一下各自的特点: 1)RTMP RTMP的优点是CDN加速成熟,成本低,可用的开源库,以及开源工具比较多,延迟一般在2到5秒。...另外媒体服务器会将上课时产生的音视频数据发送一路到录制服务,同时信令系统会将上课时产生的PPT、白板笔以及文字聊天等内容发送一份到录制服务,录制服务收到所有上课内容后,将它们以元素的形式存储下来,存储下来的这个格式叫做...在最开始实现这个平台的时候,我们采用了一些开源方案,如webrtc,但后来发现直接使用开源方案无法为完全满足教育直播的需求,因此我们自研发了一套客户端AV引擎: 下面我会针对引擎的网络部分做一个简单的介绍...4、录制回顾以及旁路推流 下面讲一下录制回顾以及旁路推流,架构如下: 具体如下,当 Server收到指令以及数据时,会将音视频数据发送到服务端的音视频引擎,服务端的音视频引擎会对这些数据做一些处理,压缩成一个大视频...,我们的负载均衡服务会将出现的问题的至少三千人负载到剩余的64台服务上,此时的网关负载增量是46.8人,异常时的网关瞬间流量是2Gb。

    78910

    Flask 中使用 make_response 下载大文件

    但是,当文件较大时(大于 1GB),就会抛出 MemoryError 异常。这是因为将超过 2GB 的二进制数据存储在一个字符串中可能会导致内存不足。...2、解决方案为了解决这个问题,可以使用流式传输的方式来下载大文件。流式传输允许将文件分块发送,这样就可以避免内存不足的问题。...2.2 使用 Flask 的 send_from_directory() 函数如果要下载的静态文件,可以使用 Flask 的 send_from_directory() 函数。...这个函数可以将静态文件直接从文件系统中发送到客户端,这样就可以避免内存不足的问题。...2.3 使用第三方库也可以使用一些第三方库来实现大文件下载功能。例如,flask-large-file-downloader 库可以帮助你轻松下载大文件。

    29810

    Redis配置文件详解

    stop-writes-on-bgsave-error yes # 存储至本地数据库时(持久化到 rdb 文件)是否压缩数据,默认为 yes rdbcompression yes # RDB 文件的是否直接偶像...将使用一个较小的数字 TCP 数据包和更少的带宽将数据发送到 slave , 但是这可能导致数据发送到 slave 端会有延迟 , 如果是 Linux kernel 的默认配置,会达到 40 毫秒 ....最大内存限制, Redis 在启动时会把数据加载到内存中,达到最大内存后, Redis 会按照清除策略尝试清除已到期的 Key # 如果 Redis 依照策略清除后无法提供足够空间,或者策略设置为 "noeviction...表进行重新 hash ,可以降低内存的使用 # 当你的使用场景中,有非常严格的实时性需要,不能够接受 Redis 时不时的对请求有 2 毫秒的延迟的话,把这项配置为 no 。...# 默认 normal 客户端不做限制,因为他们在一个请求后未要求时(以推的方式)不接收数据, # 只有异步客户端可能会出现请求数据的速度比它可以读取的速度快的场景。

    67530

    Spark Shuffle在网易的优化

    而spark 使用netty进行数据传输,单个chunk有一个严格的2GB限制,因此这必然导致了在一次拉取单个partition shuffle 数据大于2GB时的失败。...而虽然能够通过配置spark.maxRemoteBlockSizeFetchToMem小于2GB来避免这个问题的发生,但是这也造成了即使我们在资源充足的情况下,也不能将这个参数设为一个大于2GB的值,而这也就造成了有时候即使我们内存资源充足...,当我们一批fetch数据大于2GB时也要将这些数据进行落盘,新增了一些I/O开销。...通过此方案,我们就可以突破spark.maxRemoteBlockSizeFetchToMem 2GB和单partition数据量大于2GB的限制,为所欲为。...但是依然存在以下问题: 无法校验未使用数据压缩格式的数据,谁又能确定不使用压缩格式就不出错呢?

    2K70

    Redis(2.8版本)配置文件参数中文详解

    将使用一个较小的数字 TCP 数据包和更少的带宽将数据发送到 slave , 但是这可能导致数据发送到 slave 端会有延迟 , 如果是 Linux kernel 的默认配置,会达到 40 毫秒 ....最大内存限制, Redis 在启动时会把数据加载到内存中,达到最大内存后, Redis 会按照清除策略尝试清除已到期的 Key # 如果 Redis 依照策略清除后无法提供足够空间,或者策略设置为..., # hash 将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值 # Redis Hash 对应 Value 内部实际就是一个 HashMap ,实际这里会有 2 种不同实现...表进行重新 hash ,可以降低内存的使用 # 当你的使用场景中,有非常严格的实时性需要,不能够接受 Redis 时不时的对请求有 2 毫秒的延迟的话,把这项配置为 no 。...# 默认 normal 客户端不做限制,因为他们在一个请求后未要求时(以推的方式)不接收数据, # 只有异步客户端可能会出现请求数据的速度比它可以读取的速度快的场景。

    1.2K60

    mysql 导入的文件大小限制

    MySQL 是一种流行的关系型数据库管理系统,支持导入各种类型的数据文件。然而,在导入文件时,可能会遇到文件大小的限制问题。 默认情况下,MySQL 的导入文件大小限制为 1GB。...你可以通过在 MySQL 配置文件中添加以下行来设置该参数: [mysqld] max_allowed_packet = 2G 这将把 max_allowed_packet 参数的值设置为 2GB。...请注意,如果你需要设置一个大于 1GB 的值,你需要使用 G 单位。...这将把 max_allowed_packet 的值设置为 2GB。...请注意,这个设置只是全局的,它将影响 MySQL 服务器的所有客户端。 最后,如果你仍然无法导入一个大于 max_allowed_packet 大小的文件,你可以尝试分割文件为更小的块。

    44210

    Feed 流系统实战

    至于不活跃的用户,在他们回归后使用拉模型重新构建一下关注 Timeline 就好了。因为不活跃用户回归是一个频率很低的事件,我们有充足的计算资源使用拉模型 进行计算。...在使用「在线推,离线拉」策略时我们需要判断用户是否在线,在为 Timeline 设置了过期时间后,Timeline 缓存是否存在本身即可以作为用户是否在线的标志。...对于时间线这种集合式的还存在第二类缓存穿透问题,正如我们刚刚提到的 Redis 中通常只存储最近一段时间的 Timeline,当我们读完了 Redis 中的数据之后无法判断数据库中是否还有更旧的数据。...Redis 做关注时间线的要点: 使用 SortedSet 结构存储,Member 为 FeedID,Score 为时间戳 给缓存设置自动过期时间,不活跃用户的缓存会自动被清除。...Timeline 推荐使用 Redis 的 SortedSet 结构存储,Member 为 FeedID,Score 为时间戳。给缓存设置自动过期时间,不活跃用户的缓存会自动被清除。

    15510
    领券