我在公司 gitlab 上有多个 git 存储库,我想按照文档中的步骤使用 git-gilter-repo 清理它们:
https://htmlpreview.github.io/?https://github.com/newren/git-filter-repo/blob/docs/html/git-filter-repo.html#DISCUSSION
git fetch --all
分支和标签git-filter-repo --analyze --force
并查看path-all-sizes.txt
paths_to_keep.txt
和 path_to_delete.txt
指定我要保留或删除哪些目录,包括一些 globs。git-filter-repo --paths-from-file path_to_keep.txt
和类似 --invert-paths
的路径删除。确保保留所有commit-map
文件的副本。git-filter-repo --analyze
并确保所有大文件都消失了git push --force --all
上传所有分支GitLab 文档提到了额外的步骤: https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html
git push origin --force 'refs/tags/*'
上传标签git push origin --force 'refs/replace/*'
让标签指向新的哈希值第一个 repo,我按照步骤 1-4 进行操作,它按预期工作,大小显着减小,所有分支和标签都在那里,指向新的哈希值。成功!我想我没有执行步骤 5-8.
第二个仓库,大小变小了,所有分支都创建了,但是标签在第4步后没有上传到远程。 但是当我执行第 5 步时,所有大文件再次附加到标签,并且 repo 再次变大。浏览标签时,我可以看到大文件。执行第 6 步后,文件不再可见,但 repo 大小仍然很大。
有人知道第二种情况可能出了什么问题吗?
如果您想减小 GitLab 上存储库的大小,我建议您遵循 GitLab 文档了解如何执行此操作:https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html
可能导致您正在谈论的问题的两个可能步骤。
commit-map
删除内部引用。refs/replace
来替换所有的引用。