Выбрасывая старую историю на git repo, полную двоичных файлов - PullRequest
5 голосов
/ 08 февраля 2012

У меня есть git-репо с трехлетними двоичными файлами PowerBuilder.Репо довольно велико (чуть менее 10 ГБ), я полагаю, из-за того, что git может сделать так много только для бинарных дельт.Я готов выбросить кучу ранней истории, чтобы сделать это.Я просто не могу понять, как заставить это делать.Я пытался сдавить коммиты с помощью интерактивной перебазировки, но это приводит к множеству конфликтов, с которыми я не хочу иметь дело.

Есть ли способ выбрать коммит и просто выбросить все до этого?Я понимаю, что он будет переписывать SHA-1 для последующих коммитов, что не проблема.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Это один (другой) способ:

git fast-export master~5..master | (cd ../newrepo.git && git init . && git fast-import && git checkout)

В приведенном выше примере будут приняты коммиты в диапазоне master~5..master и созданы новые репо из этого.Вы также можете использовать тот же репо, но выше будет безопаснее.

0 голосов
/ 08 февраля 2012

Вы можете преобразовать все шоу в один коммит.

Что-то вроде

git rebase -i [some early commit]

, а затем использовать режим визуального блока в vim, чтобы раздавить почти все из них, было бы проще,с последующим запуском fsck и gc.

Кроме того, вы можете использовать git filter-branch для полного удаления коммитов из дерева.

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