Как оптимизировать удаленное GIT-репо - в основном Heroku - PullRequest
4 голосов
/ 10 ноября 2010

Недавно я добавил огромные файлы в локальный репозиторий и перенес эти файлы в другие репозитории.После того, как я это понял, я немного погуглил по теме и полностью удалил эти файлы, используя git reset.Я также сделал несколько других вещей для оптимизации репо (git gc, repack).Теперь моя локальная копия репо меньше 100 МБ, а не 400 МБ.Проблема, однако, в том, что мое репо на сайте heroku по-прежнему перечислено в 400 МБ, и я не совсем уверен, есть ли что-то, что я должен, чтобы отразить все изменения в удаленном репо?

Ответы [ 2 ]

7 голосов
/ 10 ноября 2010

Как и в случае с локальным репо, git gc - это операция, которая удалит все потерянные объекты (например, BLOB-объекты для ваших файлов, которые больше не являются частью истории). Когда у вас есть доступ к пульту, вы можете сделать это напрямую. Если нет абсолютно никакого способа сделать это, то вы застряли в ожидании, пока один из ваших нажатий не сработает git gc --auto. Это гарантированно произойдет в конце концов, поэтому, если на самом деле нет проблемы с репо, занимающим 400 МБ (например, больше платят за хостинг), на самом деле это не проблема. Любой, кто извлекает / тянет / клонирует из репо, просто получает то, что ему нужно, 100 МБ.

Я считаю, что github также периодически запускает git gc в репозиториях; Я не знаю, делает ли Героку что-нибудь подобное.

1 голос
/ 19 июня 2014

Извлечение https://github.com/heroku/heroku-repo

heroku repo:gc -a appname

Довольно просто запустить экземпляр Jenkins и время от времени вызывать его с сервера сборки.

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