Как мне удалить старую историю из репозитория git?

Боюсь, мне не удалось найти ничего похожего на этот конкретный сценарий.

У меня есть репозиторий git с большой историей: 500+ веток, 500+ тегов, начиная с середины 2007 года . Он содержит ~ 19 500 коммитов. Мы хотим удалить всю историю до 1 января 2010 г. чтобы сделать его меньше по размеру и с ним легче работать (мы будем хранить полную копию истории в архивном репозитории).

Я знаю коммит, который я хочу сделать корнем нового репозитория. Однако я не могу найти правильный git mojo, чтобы обрезать репо, чтобы начать с этого коммита. Я предполагаю, что потребуется какой-нибудь вариант

git filter-branch

с трансплантатами; также может потребоваться обработать каждую из 200+ ветвей, которые мы хотим сохранить отдельно, а затем снова исправить репо (что-то, что я делаю, знаю, как это сделать).

Кто-нибудь когда-либо делал что-то подобное этот? Если нужно, у меня есть git 1.7.2.3.

188
задан ebneter 22 December 2010 в 17:07
поделиться