问题标签 [bfg-repo-cleaner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
198 浏览

git - BFG 回购清理器不会缩小特定的回购

是否存在 BFG 不收缩回购的情况?

我已经成功地在多个 repos 中多次使用了 BFG repo。很棒的工具!

但是,对于一个特定的回购,我根本没有得到任何减少。奇怪的是,几天前我使用 BFG repo 并看到减少了 500 MB,但现在在下载新的 repo 并按照步骤操作后,我看到大小增加了(见下图)。为了确保我的眼睛没有欺骗我,我重新运行 BFG 进行另一个大型 repo,结果正如预期的那样减少了三分之一。只有这个回购是一个问题。

因此,在为此 repo 运行 BFG Repo Cleaner 之前(即运行 git mirror 命令),这是 my-big-repo.git 文件夹的大小 在此处输入图像描述

运行后

这是尺寸。没关系,因为 repo 还没有被淘汰 在此处输入图像描述

正如我在输出中看到的那样,大量文件已被删除

已删除的文件

但是,在运行最后一个命令后

这是尺寸

在此处输入图像描述

这怎么可能 ?

0 投票
1 回答
2084 浏览

git - bfg Cleaner 后无法推送

按照这些步骤从我的存储库中删除一些内容。

但是,当我执行 a 时git push,我收到以下消息:

写入对象:100% (28/28),6.72 KiB | 1.34 MiB/s,完成。总共 28 个(delta 18),重复使用 18 个(delta 9)远程:错误:拒绝非快进 refs/heads/master(你应该先拉)远程:错误:拒绝非快进 refs/heads/multiplicity_refinement(你应该先拉)到 ssh://path_to_repo/repo_name.git ![远程拒绝] master -> master(非快进)![远程拒绝] multiplicity_refinement -> multiplicity_refinement (non-fast-forward) 错误:未能将一些参考推送到 'ssh://path_to_repo/repo_name.git'

0 投票
1 回答
57 浏览

git - 在所有 git 存储库提交中重命名短语(在子模块中)

如何为我的 git 子模块中的所有先前提交重命名一个短语?

我的短语位于 .pack 文件中。(我缩短了十六进制 .pack 名称):

我尝试在 repo 上运行 BFG,但我得到了这个输出:

我尝试使用“--no-blob-protection”参数运行 BFG,但得到相同的输出:

我的 expression_file.txt 具有以下格式:

我研究过使用“git filter branch”,但我不确定给它什么命令来让它重写这些文件。

0 投票
0 回答
189 浏览

git - BFG - 有没有办法替换特定路径上文件的文本?

我正在使用 BFG 清理存储库,从文件中删除一些敏感数据。

我正在运行的命令如下所示:

问题是存储库有几个.config文件,但我只想对特定路径中的文件进行更改。

那可能吗?

0 投票
1 回答
2784 浏览

git - 如何在 git-bash 中修复“bfg:找不到命令”

我正在尝试使用 BFG Repo Cleaner 替换我的一个 git repos 中的一些文本。

我已经下载并安装了 jar 文件,但是当我尝试运行 bfg 命令时出现错误“bfg:找不到命令”。

当我运行 bfg.jar 文件时,它似乎工作正常,但如果我尝试使用命令运行 bfg.jar 文件和我尝试执行的 bfg 命令,我会收到错误“无法访问 jarfile bfg.jar ”。

我已经直接复制了 bfg.jar 文件的位置和名称以避免拼写错误。我在 git-bash 和 powershell 中尝试过并得到同样的错误。

这是我在 powershell 和 git-bash 中尝试过的命令,以及我得到的响应:

谁能看到我在这里做错了什么?我找不到任何有同样问题的东西,所以我知道这是用户错误,但我找不到我的问题。

谢谢您的帮助!

0 投票
1 回答
1552 浏览

java - 错误:无法访问 jarfile - 运行 bfg.jar 时

我无法在我试图清理的 git repo 上运行 bfg jar 命令。

Java 版本“1.8.0_201” JDK 版本 1.8.0_201 MacOs Sierra 10.13.3

我将 BFG 下载到 /usr/local/bin 所以总路径是 /usr/local/bin/bfg-1.11.6.jar

如果我运行:

java -jar /usr/local/bin/bfg-1.11.6.jar --delete-files .git

我不断收到“错误:无法访问 jarfile /usr/local/bin/bfg-1.11.6.jar”

我不敢相信这是手动清理 git 的最佳方法?阅读此 -> 一个错误:无法访问 jarfile bfg.jar - BFG没有帮助。

有什么想法吗?

0 投票
2 回答
1719 浏览

git - BFG Repo Cleaner - 已删除的文件仍在提交更改中

我需要从我的 Web 应用程序和 git 历史记录中删除配置文件。我已经使用 bfg repo 清洁工具完成了这项工作。我完成了文档中概述的步骤:

  1. git clone --mirror url.git
  2. java -jar bfg-1.13.0.jar --delete-files "{App.config,Web.config}" repo-name.git
  3. git reflog expire --expire=now --all && git gc --prune=now --aggressive

我将结果推送到 gitlab 中的新存储库。这些文件已从历史记录中消失。我可以签出一个旧的提交并且文件不会下来。

但是当我查看涉及 Web.config 文件的提交的详细信息时,更改部分显示了 Web.config 文件的差异。所以仍然可以看到配置文件的文本。

我在使用 bfg 工具时是否遗漏了什么?或者这是工具不会改变的东西?如何从提交更改摘要中删除文件?

0 投票
0 回答
199 浏览

git - 为什么使用 BFG 后 repo 大小仍然很大但克隆大小要小得多

我使用 BFG 从存储库中删除了很多大文件,并在从 1.18GiB 克隆到 206MB 时减少了“接收对象”。

但是当我查看 Bitbucket(自托管)并使用它的 Approximate size 功能时,旧的 repo 是 1100MB,新的 repo 是 1000MB,所以这里根本没有表示克隆的 1/6 大小减少。

有没有办法确定什么占用了原始存储库的空间?

0 投票
0 回答
111 浏览

git-rewrite-history - BFG Repo 清理器:删除多个同名文件夹。大小还是一样

我有一个巨大的 git 存储库,我想减小大小。为此,我想删除一个文件夹,该文件夹多次存在于具有相同名称的不同子目录中。

git 存储库具有以下文件夹结构:

我想删除所有Graphs文件夹,因为它们很大。我运行了java -jar ~/Downloads/bfg-1.13.0.jar --delete-folders Graphs --no-blob-protection ~/path/to/Repo以下输出:

然后我按照指示跑了git reflog expire --expire=now --all && git gc --prune=now --aggressive。这至少需要 5 小时才能完成。输出(我试图翻译):

现在,在它完成后,存储库的大小只是稍微小了一点。

查看签出的目录,大小仅为 <50MB。但是.git文件夹的大小> 19GB。浏览历史时,Graphs文件夹似乎消失了。

我不明白,为什么存储库大小仍然那么大,但这些文件夹实际上已经在提交历史记录中消失了。

0 投票
1 回答
363 浏览

git - Why does my remote repo increase in size after bfg clean up?

Used BFG to clean repo with large files.

I tried to follow step from bfg tutorial page.

Steps I followed:

git clone --mirror myrepo.git

java -jar bfg-1.13.0.jar --no-blob-protection --delete-folders "{large_folder}" test_repo.git

git reflog expire --expire=now --all && git gc --prune=now --aggressive

git push

The git push did not worked for me I had to change denyNonFastforwards = true to denyNonFastforwards = false in my remote repo's config file.

So the problem I am having is the local repo size get shrunk but when I push to the remote remote repo size increase.

The strange thing is when I clone --mirror that remote repo locally and see the size, it actually is small.