繁体   English   中英

为什么 gitlab Storage 比用 git clone 下载的要大得多?

[英]Why gitlab Storage is quite bigger than downloaded with git clone?

由于旧的未使用文件,我的存储库非常大(1.4GB)。 所以我决定用 bf 清理它。 在推送和克隆 agin 之后,我本地项目中的du -sh给了我 70Mo,所以没问题。

但是,在我的 gitlab GUI 上,repos 仍然很大(1.3Go),正如您在此处看到的:

在此处输入图片说明

我试图在设置中开始一项看家任务,但没有改变。 你知道我如何缩小尺寸吗?

您已经执行了 GitLab 建议中的第一步。 以下步骤来自他们关于如何从 GitLab 存储中清除文件的文档。

这将是一个破坏性的行动。 您正在重写存储库历史记录。

  1. 安装git filter-repo

  2. 从项目生成导出

  3. 从步骤 2 下载导出。

  4. 解压导出: tar xzf backup.tar.gz这将包含一个由git bundle创建的project.bundle

  5. 从包中克隆一个新的存储库副本: git clone --bar --mirror /path/to/project.bundle

  6. 使用之前安装的git filter-repo ,清除存储库历史记录中的所有文件。 GitLab 提供了几个示例命令。

     To purge all large files, you will want to use `--strip-blobs-bigger-than`. This example reports files larger than 10 megabytes: `git filter-repo --strip-blobs-bigger-than 10M` To purge specific files by path, you can combine both `--path` and `--invert-path`: `git filter-repo --path path/to/large.mp4` --invert-paths
  7. 从克隆project.bundle设置origin远程到本地包文件。 这是不想要的,所以删除这个origin remote 并将其重置到您的存储库。

     git remote remove origin git remote add origin http://gitlab.example.com/<namespace>/<repository>.git
  8. 强制将更改推送到存储库。 这将覆盖所有分支。 如果您有受保护的分支,则需要先移除分支保护,运行以下命令,然后重新启用受保护的分支。

     git push origin --force 'refs/heads/*'
  9. 如果您有大型标记版本,您还需要强制推送所有标记的更改。 如果您有受保护的标签,则需要先移除标签保护,运行以下命令,然后重新启用受保护的标签。

     git push origin --force 'refs/tags/*'
  10. 防止已删除提交的死链接,运行以下命令:

     git push origin --force 'refs/replace/*'
  11. 在您的存储库项目页面中,导航到Settings->Repository

  12. 上传由git filter-repo命令创建的commit-map GitLab 将此限制为每个文件 10M,但如果需要,您可以将其拆分并逐个上传。

  13. 点击Start Cleanup

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM