Как очистить удаленный репозиторий GIT?

У меня размещенный репозиторий GIT с ограниченным доступным дисковым пространством, но он подключен к системе RedMine. Я упаковываю какое-то программное обеспечение и нажимаю и тяну репозиторий, у меня заканчивается место. Теперь мне нужно очистить (пакеты больше не нужны). Как мне удалить эти пакеты из истории удаленного репозитория, учитывая, что я не могу воссоздать репозиторий (он слишком жестко привязан к RedMine)?


person Dirichlet    schedule 01.08.2010    source источник


Ответы (2)


Вы можете использовать git rebase -i, чтобы «сжать» некоторые коммиты вместе, чтобы промежуточные звенья больше не были в репозитории, а затем git push -f их на сервере. Но перебазирование вызывает проблемы, если другие используют тот же репозиторий.

Кроме того, исходные версии и связанные с ними файлы будут фактически удалены из репозитория только после завершения сборки мусора (я думаю, вы не можете сделать это удаленно, но это должно происходить автоматически) и они больше не упоминается в рефлоге (по умолчанию записи остаются там 90 дней).

person svick    schedule 01.08.2010

Вот почему вам не следует использовать VCS (систему контроля версий), такую ​​как Git (который является DVCS), или любую другую VCS для управления пакетами и выпусками.

См. Рекомендации по хранению файлов .jar в VCS (SVN, Git,…).

Внешний репозиторий артефактов, например Nexus, более адаптирован, особенно когда дело касается очистки вверх и удалите старые упакованные версии вашего программного обеспечения.


Я не понимаю, как вы можете изменить что-либо в истории Git вашего репо при сохранении связи между указанным репо и вашей системой RedMine: любое изменение вызовет новую ссылку SHA1.

person VonC    schedule 01.08.2010