从 GitLab 存储库中永久删除二进制文件
Permanently removing binary files from GitLab repos
我们有一个 GitLab 托管的存储库在工作,其中包含一些我们想要删除的大型二进制文件。我知道 BFG Repo-Cleaner 等工具可以从 Git 存储库中删除文件。
我们经常在 GitLab 中引用特定的提交 ID。 运行 BFG Repo-Cleaner 会把这些搞砸吗?
如果是这样,是否有更好的方法来清理不会弄乱这些的存储库?
We often refer to specific commit IDs in GitLab. Would running BFG Repo-Cleaner mess these up?
A git 提交 ID 是根据提交内容的哈希值和上一次提交的 ID 构建的。这意味着 any 修改您的历史记录的操作将导致 (a) 您修改的任何提交的新提交 ID 和 (b) 每个新的提交 ID后代提交.
如果不生成新的提交 ID 序列,就无法修改存储库的历史记录。
We often refer to specific commit IDs in GitLab.
虽然 git 历史在不更改所有后续提交 ID 的情况下无法修改,但 BFG 做了一些有助于更改的事情:
- 在清理您的存储库时,BFG 也 updates any object ids it finds in commit messages with their new ids. If you are deleting private data, it's a straight substitution, if you're just deleting big files (ie the commit ids themselves don't imply sensitive information), the text in your commit message becomes
"$newId [formerly $oldId]"
and in addition, a Former-commit-id:
footer will be added to the bottom of all modified commit messages.
- BFG每次运行时还会在
repo-name.bfg-report
目录下创建一个object-id-map.old-new.txt
文件。原则上,我相信这个文件可以用在 GitLab 存储库上,这样其他对提交 ID 的引用也可以被修复。
完全披露:我是 BFG Repo-Cleaner.
的作者
我们有一个 GitLab 托管的存储库在工作,其中包含一些我们想要删除的大型二进制文件。我知道 BFG Repo-Cleaner 等工具可以从 Git 存储库中删除文件。
我们经常在 GitLab 中引用特定的提交 ID。 运行 BFG Repo-Cleaner 会把这些搞砸吗?
如果是这样,是否有更好的方法来清理不会弄乱这些的存储库?
We often refer to specific commit IDs in GitLab. Would running BFG Repo-Cleaner mess these up?
A git 提交 ID 是根据提交内容的哈希值和上一次提交的 ID 构建的。这意味着 any 修改您的历史记录的操作将导致 (a) 您修改的任何提交的新提交 ID 和 (b) 每个新的提交 ID后代提交.
如果不生成新的提交 ID 序列,就无法修改存储库的历史记录。
We often refer to specific commit IDs in GitLab.
虽然 git 历史在不更改所有后续提交 ID 的情况下无法修改,但 BFG 做了一些有助于更改的事情:
- 在清理您的存储库时,BFG 也 updates any object ids it finds in commit messages with their new ids. If you are deleting private data, it's a straight substitution, if you're just deleting big files (ie the commit ids themselves don't imply sensitive information), the text in your commit message becomes
"$newId [formerly $oldId]"
and in addition, aFormer-commit-id:
footer will be added to the bottom of all modified commit messages. - BFG每次运行时还会在
repo-name.bfg-report
目录下创建一个object-id-map.old-new.txt
文件。原则上,我相信这个文件可以用在 GitLab 存储库上,这样其他对提交 ID 的引用也可以被修复。
完全披露:我是 BFG Repo-Cleaner.
的作者