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

如何使用BFG从git历史中永久删除文件夹

BFG是一个强大的Git命令行工具,可以帮助我们从Git历史中永久删除文件夹。下面是使用BFG删除文件夹的步骤:

  1. 首先,确保你已经安装了BFG工具。你可以从BFG的官方网站(https://rtyley.github.io/bfg-repo-cleaner/)下载并安装它。
  2. 打开命令行终端,并导航到包含你的Git仓库的目录。
  3. 运行以下命令,使用BFG删除文件夹。将<folder>替换为你要删除的文件夹的路径。
  4. 运行以下命令,使用BFG删除文件夹。将<folder>替换为你要删除的文件夹的路径。
  5. 例如,如果要删除名为"docs"的文件夹,命令将如下所示:
  6. 例如,如果要删除名为"docs"的文件夹,命令将如下所示:
  7. BFG将会扫描你的Git历史,并删除包含指定文件夹的所有提交和相关内容。这个过程可能需要一些时间,具体取决于你的Git仓库的大小和历史记录的数量。
  8. 完成后,运行以下命令来清理Git仓库,并将其优化为新的历史记录:
  9. 完成后,运行以下命令来清理Git仓库,并将其优化为新的历史记录:
  10. 最后,使用以下命令强制推送你的更改到远程仓库:
  11. 最后,使用以下命令强制推送你的更改到远程仓库:
  12. 注意:由于BFG会修改Git历史,因此在推送更改时需要使用--force选项。

使用BFG从Git历史中永久删除文件夹的优势是它简单易用且高效。它可以帮助我们轻松地清理Git仓库中不再需要的文件夹,减小仓库的大小并提高性能。

这种方法适用于需要彻底删除Git仓库中某个文件夹的情况,例如误上传了敏感信息或大文件等。删除文件夹后,相关的提交和内容将无法恢复,因此在使用BFG之前,请确保你已经备份了重要的数据。

腾讯云没有提供与BFG直接相关的产品或服务,但作为云计算提供商,腾讯云提供了丰富的云计算解决方案和产品,例如云服务器、云数据库、云存储等,可以帮助用户构建和管理他们的云计算基础设施。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

git历史记录彻底删除文件或文件夹

如果你对外开源的代码中出现了敏感信息(例如你将私钥上传到了仓库),你可能需要考虑将这个文件 git历史记录完全删除掉。 本文介绍如何 git历史记录彻底删除文件或文件夹。...---- 第一步:修改本地历史记录 彻底删除文件: 1 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch...walterlv.xml' --prune-empty --tag-name-filter cat -- --all 其中 walterlv.xml 是本来不应该上传的私钥文件,于是使用此命令彻底删除...彻底删除文件夹: 1 git filter-branch --force --index-filter 'git rm --cached -r --ignore-unmatch WalterlvDemoFolder...' --prune-empty --tag-name-filter cat -- --all 删除文件夹时需要额外带一个 -r 选项,并指定文件夹名称,这里的例子是 WalterlvDemoFolder

48620

Git+Gerrit如何永久删除历史文件(大文件私密文件)

git reset --soft命令一样是无法将提交记录仓库抹掉的,虽然通过reset之后,大文件的提交记录在git log已经查找不到,但实际上,这个记录并不会真正的仓库删除,只要能找到commit...id,依然可以仓库恢复该提交历史。...git filter-branch 1)前面两种修改的方式都是我们平时所熟悉的,使用频率比较高的删除某些文件或者提交记录的方式,但这些方式实际上都是生成了新的提交记录,并不会修改或者删除我们的提交历史...,也就是说,想要永久删除仓库的某个文件,这样是行不通的。...Git这么强大,肯定是存在可以永久删除历史记录的命令,找了一圈,发现确实有“后悔药”命令,那就是git filter-branch,通过以下命令,就可以永久删除你想要删除的任何文件: git filter-branch

2.5K20

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

, 这将导致别人clone你的代码或下载zip包的时候也必须更新或下载这些无用的文件,因此, 我们需要一个方法, 永久删除这些文件(包括该文件的历史记录)....的另一种选择 BFGgit-filter-branch之外的一种更简单、更快的方法,可以清除Git存储库历史的不良数据: 删除 大文件 删除 密码、凭证 和其他 私人数据 git-filter-branch...无论它们在您的存储库的任何地方: $ bfg --replace-text passwords.txt my-repo.git 删除Git中所有名为'.git'的文件夹或文件—保留的文件名。...BFG对待你就像一个改过自新的酒鬼:你过去犯过一些错误,但现在你已经改过自新了。因此,BFG假定您的最新提交是一个好的提交,其中没有您希望历史记录删除的脏文件。...如果某个坏的文件(比如10MB的文件,当您指定--strip-blobs-bigger-than 5M)在受保护的提交,那么它不会被删除—它将保存在您的存储库,即使BFG以前的提交删除了它。

2.8K40

彻底删除Git仓库的某个文件或文件夹(包括历史记录)

想要彻底删除 Git 仓库的某个文件或文件夹(包括历史记录)时,可以按照以下步骤操作: 确定要删除的文件名或文件夹名: 如果要删除文件,使用以下命令: git filter-branch --force...,使用以下命令: git filter-branch --force --index-filter 'git rm --cached -r --ignore-unmatch 文件夹名/' --prune-empty...--tag-name-filter cat -- --all 如果要删除某个文件夹下所有以“2018”开头的 mp4 文件,可以使用类似的命令: git filter-branch --force...=now --all git gc --prune=now git gc --aggressive --prune=now 这些步骤经过测试,可以成功地删除文件或文件夹及其历史记录。...未经允许不得转载:前端资源网 - w3h5 » 彻底删除Git仓库的某个文件或文件夹(包括历史记录)

18210

仓库移除敏感信息

如果你将敏感数据(如密码或 SSH 密钥)提交到 Git 仓库,你能够将其历史记录删除。...要从仓库的历史记录完全删除不需要的文件,你可以使用 git filter-branch命令或 BFG Repo-Cleaner。...我们建议在从仓库删除文件之前合并或关闭所有打开的请求。 你可以使用 git rm 最新的提交删除文件。...仓库历史清除文件 使用 BFG BFG Repo-Cleaner 和 git filter-branch 类似,用于删除不需要的文件,是一种更快速、更简单的替代方法。...为了说明 git filter-branch 如何工作,我们将向你展示如何仓库的历史记录删除具有敏感数据的文件,并将其添加到 .gitignore 以确保它不会被意外重新提交。 1.

92420

如何删除Git仓库的敏感文件及其历史记录

本文主要介绍如何使用 git filter-branch 命令删除 Git 仓库的敏感文件及其历史记录。...这里我们可以直接复制文件夹,或者在其他文件夹 git clone 一下仓库。...2.3 运行git filter-branch 进入仓库目录,使用 git filter-branch 命令删除敏感文件及其历史记录。...git push --force 完成以上步骤后,敏感文件及其历史记录将从Git仓库删除。 请注意,这种方法可能导致其他协作者的仓库出现问题。建议通知其他协作者在合并更改之前重新克隆仓库。...如果你是一个人使用,那就无所谓了。 3. 结论 本文介绍了如何使用 git filter-branch 命令手动删除Git仓库的敏感文件及其历史记录。

25440

如何删除GIT仓库的敏感信息

由于Git的正常操作流程,导致敏感信息一旦进入主分支,再怎么在新的Pull Request删除,也无能为力了。其它人都能在历史记录查询到历史记录的配置。...这里我将演示一个故意写满“敏感信息”的Github仓库,然后一步一步演示怎么在历史记录删除“敏感信息”,以完成“脱敏”。...文件夹敏感 删除 Program.exe 大二进制 删除 这个演示满载“敏感”信息的代码仓库,可以:https://github.com/sdcb/sensitive-repo-demo 这里下载...3.4 删除敏感文件夹 命令: bfg --delete-folders userSecrets --no-blob-protection 将userSecrets文件夹替换成你的敏感文件夹即可。...希望各位提高警惕,不要在Git使用翻车。

3K61

删除 GitGitHub 的敏感数据

但是在 Git 里删文件似乎不是个容易的事情——由于 Git 会保留历史与版本回溯,所以需要将需要删除的文件在之前的版本也一并删除掉w 据说正常来讲需要使用 git filter-branch 命令,...好在有一个叫做 BFG 的工具,提供了一种更快、更简单的 git filter-branch 替代方法,用于删除不需要的数据。简单踩了一下坑,做了一下步骤记录。 1. 安装 BFG 2....删除文件 需要先将需要删除的文件进行删除并在本地进行一次 commit,才能在 BFG 对文件进行删除。...运行 BFG 万事俱备,准备删除w 删除文件的命令: java -jar bfg的路径/bfg-1.13.0.jar --delete-files 需要删除的文件 删除文件夹的命令: java -jar...bfg的路径/bfg-1.13.0.jar --delete-folders 需要删除文件夹 4. commit 并 push 到远端 这里由于删除文件更改了之前的提交历史,所以必须 force push

1.4K10

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

因为git历史文件都是存在一个文件里的,我们使用下面命令可以找出排名前五的文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3...记一次删除Git记录的大文件的过程:https://www.hollischuang.com/archives/1708 方法二 工具化(自动机枪) 工具名称:BFG 工具地址:https://rtyley.github.io.../bfg-repo-cleaner/ 第一步 下载包文件 直接官网下载即可,bfg-1.13.0.jar 将程序包放到一个文件夹里,为了方便,重命名为bfg.jar 第二步 克隆仓库 clone自己的...删除文件和删除文件夹的命令 java -jar bfg.jar --delete-files 我是单个文件名字 hcses-warehouse.git --no-blob-protection java...,实际上这些数据/文件并没有被直接删除,这时候需要使用git gc指令来清除。

5.6K10

清理 git 仓库太繁琐?试试 bfg删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明)

你可能接触过 git-filter-branch 来清理 git 仓库,不过同时也能体会到这个命令使用的繁琐,以及其超长的执行时间。 现在,你可以考虑使用 bfg 来解决问题了!...可能需要解除保护 如果本文后面的命令你遇到了受保护的提交,那么需要在所有命令的后面加上 --no-blob-protection 参数 常见用法 使用 bfg 来清理仓库比 git 原生的 git-filter-branch...删除误上传的大文件 使用下面的命令,可以将仓库历史中大于 500M 的文件都删除掉。...删除文件夹 删除名字为 walterlv 的文件夹: 1 > bfg --delete-folders walterlv 此命令可以与上面的 --delete-files 放在一起执行: 1 > bfg...下面这个例子示例将 git 仓库中所有文件的 密码:123456 字符串替换成 ***REMOVED***: 1 密码:123456 更复杂一点的,下面的例子示例将 git 仓库中所有文件的 密码

47640

如何使用Python选择性地删除文件夹的文件?

问题1 问题描述:在一个文件夹,有着普通文件以及文件夹,那么我们如何做到删除全部文件夹而不删除文件呢? 如下图所示,我们想要删除test文件夹的所有文件夹,而保留其他文件: ?...我们可以看到,test文件夹的文件已经全部删除。 ? Version 2.0 但是,后来仔细一想,上面这种方法却存在一个非常大的问题,如果普通文件是没有后缀名,也就是文件名称不存在....接着,我又发现了文件夹和普通文件的另外一个区别,也就是文件夹是可以使用os.chdir("file_name")这个命令的,而普通文件则显然不行,会出现异常。...可以看到,文件夹已经删除,而没有后缀名的普通文件依然存在。 ?...问题2 问题描述:我们如何做到删除一个文件夹的空白文件夹,而不删除其他文件呢? ? 可以看出,问题2是问题1的进阶版本,只需要在问题1的代码基础上,增加一个判断文件夹是否空白的语句即可。

13.2K30

Git目录为什么这么大

删除大文件 4.4 按照pack文件直接操作 5、大文件存储的正确方式 6、其他解决方案 7、小结 1、介绍 Git作为一个分布式的版本控制工具,在每天高频次的使用难免遇到一些问题 本文围绕git...的目录过大,git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理 2、Git存储原理 2.1 目录结构 使用版本控制的人都会知道,不管是svn还是更为流行的git,整个工程目录下...删除一个文件时,Git只是记录了该删除操作,该记录作为一个Patch存储在 .git 。...借助 git filter-branch 便可以重写历史提交,当然这也是Git中最危险的操作 2.3 如何彻底删除一个文件 以一个文件的提交为例,这个文件可能会关联很多次提交,只有将每一次与该文件有关的的提交记录进行重写...50M my-repo.git # 删除文件夹下所有的文件 $ java -jar bfg.jar --delete-folders doc my-repo.git 7、小结 本文分析了git底层版本控制的存储实现

1.2K10

【实战】如何使用 Python Redis 删除 4000万 KEY

SSCAN 用于迭代集合键的元素 HSCAN 用于迭代哈希键的键值对 ZSCAN 用于迭代有序集合的元素(包括元素分值和元素分值) 以上四列命令都支持增量迭代,每次执行都会返回少量元素,所以他们都可以用于生产环境...第二次迭代使用第一次迭代时返回的游标,即:17。 示例可以看出,SCAN 命令的返回是一个两个元素的数组,第一个元素是新游标,第二个元素也是一个数组,包含有所被包含的元素。...精简一下内容,补充三点: 因为 SCAN 命令仅仅使用游标来记录迭代状态,所以在迭代过程,如果这个数据集的元素有增减,如果是减,不保证元素不返回;如果是增,也不保证一定返回;而且在某种情况下同一个元素还可能被返回多次...6379> sscan myset 0 match f* 1) "0" 2) 1) "foo" 2) "feelsgood" 3) "foobar" 注意:对元素的模式匹配工作是在命令数据集中取出元素之后...key 存在一个文件里,有 2.2G,大概 4000W 个,下一步就是删除了 ---- 使用 Python DEL 因为文件很大,我们用到一个小技巧,分块读取 with open("/data

7.9K80

如何创建修改远程仓库 + 如何删除远程仓库 + 如何删除远程仓库的某个文件或文件夹 + 如何使用git将本地仓库连接到多个远程仓库

三、删除Github已有的仓库(即删除远程仓库) 三箭齐发,太累了,以下演示仅以GitHub为例。其余的同理。 如果我们想要删除Github没有用的仓库,应该如何去做呢?...六、删除Github已有的仓库的某个文件或文件夹(即删除远程仓库的某个文件或文件夹) 我们知道,在Github上我们只能删除仓库,并不能删除文件或者文件夹,所以只能用命令来解决。...即我们通过删除本地仓库的某个文件或文件夹后,再将本地仓库与远程仓库同步,即可删除远程仓库的某个文件或文件夹。...6.1、本地仓库和远程仓库同时删除文件或文件夹 1、我们先在本地仓库删除掉文件a.txt ? 2、然后执行以下命令,即可删除远程仓库的文件了 ? 删除远程仓库文件夹同理。不在演示。...注意:   git pull (远程仓库pull下来的项目放到的是本地的缓存里。)   git clone 远程仓库地址 (远程仓库clone下来的项目放到的是本地的磁盘里。)

7.3K20

如何使用NoseyParker在文字数据和Git历史寻找敏感数据

关于NoseyParker NoseyParker是一款功能强大的命令行工具,该工具可以帮助广大研究人员在文本数据寻找敏感信息,可以用于网络安全攻防两端的安全测试过程。...关键功能 1、支持扫描Git代码库的文件、目录和整个历史记录; 2、使用了正则表达式与一组包含了99种预定义模式的记录相匹配,这些模式是根据网络安全攻防两端行动的经验和反馈而生成的,具有高信噪比特征...、支持将共享相同敏感数据的匹配组合在一起; 4、运行速度非常快,可以在单核CPU上以每秒数百兆字节的速度扫描,并且能够在不到2分钟的时间内在旧版MacBook Pro上扫描100GB的Linux内核源历史记录.../praetorian-inc/noseyparker:latest (向右滑动,查看更多) 扫描文件系统内容以识别敏感数据 比如说,你将CPython项目克隆到了本地,我们就可以使用...scan命令来扫描整个历史记录,并创建一个新的数据存储(--datasotre)来存储扫描结果(np.cpython): $ noseyparker scan --datastore np.cpython

17810

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

图片这目录好大那么.git目录是存放什么的?为什么会这么大呢?在Git系统,.git目录存储了整个代码仓库的元数据信息(包括提交历史记录、分支、标签等)和文件对象。...图片objects目录之所以这么大,是因为它保存了仓库的所有历史版本和数据对象,也就是blobs文件内容, trees目录结构, commits提交历史,它们是 Git 的三个核心对象类型。...上边三种类型的对象组成了Git的基本数据单元,通过这些对象的组合和链接,才构建出完整的提交历史,并跟踪代码库每个文件的变化历史。...图片4、删除大文件使用--delete-files命令逐一的将大文件删除,如果提示分支是被保护的可以加上--no-blob-protection命令执行。...Git历史版本、清除废弃的、过期的对象,这个过程会耗费较长的时间。

78330

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

使用 Git 钩子(Git hooks)和 CI 检查提交 没有工具可以 Git 仓库找出所有敏感数据,但是有一些工具可以为我们提供帮助。...如果我们在 Git 仓库中发现了一些敏感数据泄漏,我们就不能仅仅通过提交另一个提交覆盖的方式来进行清理。 ? 我们需要做的是整个 Git 历史记录删除所有敏感数据。...git clone --mirror git://example.com/need-clean-repo.git 我们需要执行 git filter-branch 命令来所有分支删除数据并提交历史记录...通常比 git filter-branch 快 10–720 倍。除删除文件外,BFG 还可以用于替换文件的机密信息。 BFG 保留最新的提交记录。它是用来防止我们犯错误的。...我们应该显式地删除文件,提交删除,然后清除历史记录以此删除它。 如果泄漏的 Git 代码库被其他人 fork 了,我们需要遵循 DMCA[11] 的删除策略,请求 Github 删除创建的代码库。

1.8K10

如何删除错误提交的 git 大文件

那么如何把这个压缩包彻底 git 删除? 如果需要删除 git历史记录,使用方法很简单,请看 Git如何永久删除文件(包括历史记录) - shines77 - 博客园 。...当然这个方法需要很长时间,因为提交大文件的时间不长,所以可以使用walterlv的方法 彻底删除 Git 仓库的文件避免占用大量磁盘空间 - walterlv 于是远程仓库删好了,但是本地仓库还是有小伙伴拉下来...,于是如何让本地的小伙伴可以使用最新的仓库?...删除原来分支,这样就好 最后的命令是使用 gc 清掉这个提交 这时候查看自己的git 文件夹,如果文件夹还是那么大,那么说明还有一个分支是引用提交大文件,需要自己去看一下是哪个分支。...需要说明,git 如果提交一个文件,然后删除他,继续提交,那么这个文件是存在 git ,需要使用特殊的命令才可以删除

3K10
领券