簡體   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