Очистка двоичных двоичных объектов в репозитории git - PullRequest
3 голосов
/ 17 июля 2011

У нас есть определенный двоичный файл в нашем репозитории git. Обычно размер составляет около 2 МБ.

Один из наших разработчиков случайно передал этот файл в комплекте со всеми его зависимостями, который увеличил размер файла до 40 МБ.

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

Как я могу удалить этот блок данных, чтобы восстановить размер репо? Простого git gc недостаточно, и я думаю, что мне нужен взлом на более низком уровне, с которым я не знаком.

Ответы [ 2 ]

5 голосов
/ 17 июля 2011

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

Если вы хотите удалить эту версию файла из репозитория, вам придется перебазировать репо, в идеале, используя git rebase -i. Проблема в том, что он переписывает историю, и вы действительно не должны делать это для коммитов, которые уже являются общедоступными (то есть общими для нескольких пользователей). См. Восстановление после восходящей версии , чтобы узнать, как это сделать, если вы действительно этого хотите.

После того, как вы сделаете эту перезагрузку, файл некоторое время будет оставаться в хранилище, но в конечном итоге он будет удален автоматически. И он вообще не будет передаваться, если вы используете git clone или git pull.

0 голосов
/ 17 июля 2011

Если вы оформите заказ, тогда файл поступит в вашу локальную копию репо.затем используйте git rm, чтобы получить его.Или, чтобы он выглядел так, как будто его никогда не добавляли, проверьте это: Полное удаление файла из всей истории изменений репозитория Git

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