问题标签 [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 回答
2057 浏览

git - git: --prune-empty 使用 bfg 重复提交后

我正在使用bfg从(克隆)git 存储库中删除一些子目录:

这工作正常,但是在我使用 bfg 之后,我有许多空提交(即提交带有很好的日志消息但没有更改,因为它们只涉及现在已删除的文件)。

所以作为下一步我尝试使用

或者

两个版本都没有预期的效果(删除空提交)。

相反,我最终得到的是一个存储库(见下面的截图,左边是修剪前,右边是修剪后):

  1. 一些空提交已被删除
  2. 大多数空提交仍然存在
  3. 非空提交在不同的提交序列中重复

在此处输入图像描述

有什么建议吗?

0 投票
1 回答
1313 浏览

git - 从 git 历史记录中删除文件夹:BFG 工具删除所有分支

我需要从所有分支中删除文件夹缓存。我正在使用 BFG 工具,但是它会删除除 master 之外的所有分支。这就是我所做的。

步骤 1:从本地克隆创建一个镜像(验证我的本地克隆中有许多分支):

第 2 步:在镜像上运行 BFG 工具

第三步:从修改后的镜像中克隆,计算分支数

0 投票
1 回答
1093 浏览

git - Git:删除除某个目录之外的所有内容(BFG Repo Cleaner)

我正在尝试永久删除 Git 存储库中所有目录的所有痕迹,除了一个目录,比如名为keep-me

对于这样的任务,BFG repo 清理器是我常用的工具。但是,它似乎不支持这种操作(实际上,我相信它不支持扩展 glob)。我真的在努力完成以下工作,这并没有摆脱其他目录:

谢谢!

0 投票
2 回答
2479 浏览

git - 如何从 GitHub 存储库中删除大(>100MB)文件并成功推送?

在无意中添加了一个我不想要的大文件并在无意中添加了大文件后完成了其他工作的额外提交(不知道推送会失败)之后,我处于与此处所述相同的情况:

我应该在镜像仓库还是原始仓库上运行 BFG?


ATTEMPT #1 尝试删除文件:

没运气。即使后来的提交删除了它,推送仍然停留在尝试上传大文件:

$ git推送


尝试 #2 尝试了https://rtyley.github.io/bfg-repo-cleaner/的说明

但它没有看到阻止我推送的大文件:

$ git clone --mirror https://github.com/traildreaming/myrepo.git

$ cp -fr myrepo.git myrepo.git.bac


尝试#3 尝试这样做会导致“远程:错误:”消息:

$ git clone --mirror ../../myrepo/.git

$ java -jar bfg-1.12.12.jar --strip-blob-big-than 100M tmpmirror/myrepo/myrepo.git

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

$ git推送

0 投票
2 回答
2171 浏览

git - 如何导入带有大文件的 git 存储库?

鉴于GitHub 不允许推送大于 100 MB 的文件,因此无法git clone 并将包含大文件的存储库推送到 GitHub 企业中。推送失败并显示:

(注意:有一个存储库导入器,但这仅适用于 github.com,并且需要公开访问您的存储库)

幸运的是,自 2015 年 4 月以来,GitHub提供了对大于 100MB 文件的存储支持。那么如何将当前包含如此大文件的存储库转换为我可以推送到的 GitHub LFS 兼容存储库?

0 投票
1 回答
2718 浏览

git - 将现有 Git 存储库迁移到启用了 Git LFS 的新存储库

我现有的 Github 存储库因 zip 和 tar.gz 文件而变得臃肿,因此我想将其迁移到一个的启用 Git LFS 的存储库,该存储库与现有的 Github 存储库分开进行测试,以便现有的 Github 存储库不受影响。我遇到了一个很棒的工具,叫做 bfg-repo-cleaner https://github.com/rtyley/bfg-repo-cleaner,看起来正是我需要的!

我编译了我认为我需要做的步骤,但希望能有第二双眼睛来确保这些步骤是正确的。

原来的现有仓库在哪里https://github.com/username/source.git,新的目标 Git LFS 启用的仓库在哪里https://github.com/username/destination-lfs.git

我错过了什么吗?好像推送也失败了

此外,原始 github 存储库还为 gitlab 和 bitbucket 以及备份位置添加了额外的遥控器。我相信 bitbucket 和 gitlab 都像 github 一样支持 Git LFS 吗?

干杯

0 投票
3 回答
7600 浏览

git - BFG Repo-Cleaner 声明我的 github 存储库不是有效的 Git 存储库

这是Stackoverflow 上一个问题的后续问题。

我试图从我的本地 git 历史记录中删除大文件,但这个问题中建议的工具(BFG Repo-Cleaner)指出我的私人 GitHub 存储库不是有效的 git 存储库。

我使用的命令是:

最终导致:

我找不到解决方案。该工具是否与私有或 https GitHub 存储库不兼容?我将如何使用替代工具git-filter-branch从本地 git 历史记录中删除所有大于 99MB 的文件?

该项目大约 6MB 大,到目前为止只提交了大约 50 次提交,并且没有其他人在处理它。

0 投票
2 回答
3242 浏览

git - 使用BFG时可以指定多个文件吗?

我正在尝试删除通配符无法覆盖的多种类型的文件。我尝试使用多个 --delete-files 但它不接受它。还尝试将文件全部放在一个 --delete-files 之后,它也不接受它。

有没有办法将它们全部放在一个命令中?如果不是,那么我必须在reflog expire --expire=now --all && git gc --prune=now --aggressive使用 bfg 删除每种类型的文件后运行 git 还是可以只运行 bfg 多次然后运行该命令?

0 投票
1 回答
1110 浏览

git - 在 BFG Repo-Cleaner 之后无法推送

我们有一个自托管的 Gitlab 实例。

我使用了 BFG-Repo-Cleaner,一切都很顺利,但是当我尝试推送更改时,我得到了这个:

远程:GitLab:您不允许将代码强制推送到此项目的受保护分支。

PS我是该项目的所有者。早些时候我对这个项目进行了分叉,在那里推动更改没有问题。

0 投票
2 回答
1999 浏览

git - 使用 BFG Repo-Cleaner 从 GitHub 存储库中的过去提交中删除文件

我的 GitHub 存储库中有一个文件,我想从以前的提交中删除它。我使用了 BFG Repo-Cleaner 的delete-files命令,它似乎可以工作,但是当我进入我的 GitHub 存储库时,该文件仍然在所有以前的提交中。如果我再次尝试执行该命令,它会给我一个

BFG 中止:没有要更新的参考 - 没有找到脏提交?

我是否误解了 BFG 的工作原理?如果是这样,我如何从我过去在 GitHub 上的提交中删除该文件?

以下是我采取的步骤:

  1. --mirror使用该标志将我的 GitHub 存储库的副本克隆到本地文件夹中。
  2. 然后cd我到我当地的视觉工作室项目。
  3. 然后我输入了命令java -jar bfg-1.12.1.13.jar --delete-files <.json file I wanted to delete> <my local clone copy from step 1>.git
  4. 然后我进入git reflog expire --expire=now --all && git gc --prune=now --aggressive
  5. git push