git-filter-repo 没有保留标签

问题描述 投票:0回答:1

我在公司 gitlab 上有多个 git 存储库,我想按照文档中的步骤使用 git-gilter-repo 清理它们:
https://htmlpreview.github.io/?https://github.com/newren/git-filter-repo/blob/docs/html/git-filter-repo.html#DISCUSSION

  1. 克隆旧/大仓库和
    git fetch --all
    分支和标签
    (注意:它在 GitLab 中被标记为存档以使其只读)。
  2. 运行
    git-filter-repo --analyze --force
    并查看
    path-all-sizes.txt
  3. 创建两个 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
    并确保所有大文件都消失了
  4. 添加一个新的 remote/origin,指向一个新的、新鲜的和空的 repo,
    然后
    git push --force --all
    上传所有分支

GitLab 文档提到了额外的步骤: https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html

  1. 运行
    git push origin --force 'refs/tags/*'
    上传标签
  2. 运行
    git push origin --force 'refs/replace/*'
    让标签指向新的哈希值
  3. 等待30分钟
  4. 使用提交映射文件运行存储库清理

第一个 repo,我按照步骤 1-4 进行操作,它按预期工作,大小显着减小,所有分支和标签都在那里,指向新的哈希值。成功!我想我没有执行步骤 5-8.

第二个仓库,大小变小了,所有分支都创建了,但是标签在第4步后没有上传到远程。 但是当我执行第 5 步时,所有大文件再次附加到标签,并且 repo 再次变大。浏览标签时,我可以看到大文件。执行第 6 步后,文件不再可见,但 repo 大小仍然很大。

有人知道第二种情况可能出了什么问题吗?

gitlab git-tag git-filter-repo
1个回答
1
投票

如果您想减小 GitLab 上存储库的大小,我建议您遵循 GitLab 文档了解如何执行此操作:https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html

可能导致您正在谈论的问题的两个可能步骤。

  1. 不运行
    commit-map
    删除内部引用。
  2. 没有做一个
    refs/replace
    来替换所有的引用。
© www.soinside.com 2019 - 2024. All rights reserved.