Как уменьшить размер файла пакета репозитория gitLab? - PullRequest
0 голосов
/ 16 марта 2020

Раньше у меня была одна папка для репозитория и pu sh для gitlab. Позже я хотел сгруппировать все эти коды в папку (Wrapper). Я удалил. git в каждой из этих папок

-Wrapper   // git initiated
 -Project1 // .git removed
 -Project2 // .git removed  

Проблема была в том, что он толкнул следующие каталоги

teams/*
dist/*
node_modules/*
temp/*
lib/*

Я исправил проблему с этими командами

git rm -r --cached .
git add .
git commit -m "Untracked files issue resolved to fix .gitignore"

и добавил файл .gitignore в папку Wrapper root. В хранилище по-прежнему указано 80 МБ.

Я попытался выполнить следующее

git filter-branch --tree-filter "rm -rf node_modules" --prune-empty HEAD
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
git push origin --force --all
git push origin --force --tags

и попробовал это

git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch *node_modules*' \
  --prune-empty --tag-name-filter cat -- --all
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
 git push origin --force --all
 git push origin --force --tags


Мой репозиторий по-прежнему занимает 80 МБ. Есть опция, которая заключается в том, чтобы создать новый проект, создать новую папку, поместить все проекты в папку, git init ... и git pu sh решит ее, но есть ли шанс, что я смогу сохранить мою git историю?

Я проверил свой журнал git с помощью этой команды,

git log --name-status >1.log

, и он показывает мою историю при добавлении node_modules были удалены.

$ git count-objects -vH
count: 0
size: 0 bytes
in-pack: 431
packs: 1
size-pack: 1.48 MiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes


1 Ответ

1 голос
/ 16 марта 2020

В дополнение к « Как удалить / удалить большой файл из истории коммитов в Git хранилище? », рекомендуется использовать новый инструмент git filter-repo который заменяет BFG и git filter-branch.

git filter-repo --strip-blobs-bigger-than 1M --refs 84971f1..master

См. раздел « Фильтрация по путям »

git filter-repo --paths-from-file toBeRemove.txt --invert-paths 

Вставить toBeRemove.txt:

teams/
dist/
node_modules/
temp/
lib/

Примечание: если вы получаете следующее сообщение об ошибке при выполнении вышеупомянутых команд:

Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`

это означает, что вам нужно обновить git .


Если локальный репозиторий исправен, но удаленный репозиторий все еще сообщает о большом размере, это может быть проблемой с журналом, когда git g c выполняется автоматически удаленный хост-сервер репозитория исправит указанный размер позже.

ОП подтверждает в комментариях:

онлайн-репозиторий GitLab не обновляет размер файла.
Я просто сделал git clone и репо вернулось к 1.48MB, проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...