我们在工作中有一个GitLab托管的repo,其中包含一些我们想要删除的大型二进制文件。我知道诸如BFG Repo-Cleaner之类的工具,它将从Git存储库中删除文件。
我们经常在GitLab中引用特定的提交ID。运行BFG Repo-Cleaner会搞砸这些吗?
如果是这样,是否有更好的方法来清理不会弄乱它们的回购?
答案 0 :(得分:1)
我们经常在GitLab中引用特定的提交ID。运行BFG Repo-Cleaner会搞砸这些吗?
git commit id是根据提交内容的哈希值和前一次提交的id构建的。这意味着修改历史记录的任何操作将导致(a)您修改的任何提交的新提交ID和(b)每个后代提交的新提交ID
如果不生成新的提交ID序列,则无法修改存储库的历史记录。
答案 1 :(得分:1)
我们经常在GitLab中引用特定的提交ID。
虽然在不更改所有后续提交ID的情况下无法修改git历史记录,但BFG会执行一些有助于更改的内容:
"$newId [formerly $oldId]"
,此外,Former-commit-id:
页脚将添加到all modified commit messages的底部。object-id-map.old-new.txt
目录下创建一个repo-name.bfg-report
文件。原则上,我相信这个文件可以在GitLab repo上使用,这样也可以修复对提交ID的其他引用。完全披露:我是BFG Repo-Cleaner的作者。