2015-07-19 3 views
-2

My GIT превратился в монстра. Для клонирования требуется почти 70 минут. Можно ли обрезать репозиторий и архивировать старые коммиты, которые больше не актуальны? Однако я не хочу их удалять. Что я могу сделать, чтобы свести к минимуму размер моего репозитория git?Огромный репозиторий GIT - что мне делать?

+0

Вы храните двоичные файлы в репозитории или только файлы кода? –

+0

Размер и способ клонирования помогут. – jthill

ответ

0

См. «How to reduce disk space usage in a large repository?» для основных опций.

В вашем случае я бы посоветовал разделить историю репо, но также проверить, можете ли вы сделать split some of the subfolders into their own git repos (и ссылаться на них через подмодуль gitlink entries).

Убедитесь, что в истории репо не сохранены никакие файлы (особенно если они могут быть сгенерированы из источников).

0

Помимо избавления от ненужных файлов из хранилища, как VonC указал, есть две возможности, которые приходят на ум:
- Первый из них будет клонировать только необходимые ветви, так как мерзавец 1.7.10 вы могли бы сделать что-то вроде:

git clone URL --branch branch_name --single-branch [folder] 

Это может быть полезно, если у вас есть много филиалов и дивергенции в вашем хранилище, в противном случае не будет большой доход.
- Альтернативой этому будет мелкий клоун, который в основном является частичным клоном вашего репозитория. Вы можете использовать его как это:

git clone --depth [depth] remote-url 

Существовало много ограничений с неглубоким-клоном, как не в состоянии принести или толкать в хранилище, но, по-видимому, некоторые из них были преодолены в 1.9 version.
Вы также можете использовать опцию filter-branch, чтобы переписать некоторую историю, но это будет означать много усилий вручную, если ваш репозиторий очень большой, и каждый должен будет снова клонировать репо, как только вы закончите с ним.