Кажется, что git gc --aggressive
действительно очищает мое репо, но когда я делаю git push
, все уже обновлено. Есть ли способ очистить сервер?
Git gc - агрессивный push-сервер?
Ответ 1
Я знаю, что Github будет периодически запускать git gc, поскольку поддержка Github упоминает в этот поток.
Я не знаю, сможешь ли ты сама его заставить. Я не видел такого сервиса в Github hooks.
Ответ 2
Я считаю, что нажатие ваших изменений только добавит новые коммиты (по мере необходимости, чтобы достичь ветвей, которые вы нажимаете); он не удалит их. Это подтверждается этой страницей поддержки github при удалении конфиденциальных данных:
Предупредить, что принудительное нажатие не стирает фиксации в удаленном репозитории, оно просто вводит новые и перемещает указатель ветки, чтобы указать на них. Если вы беспокоитесь о том, что пользователи получают доступ к плохим коммиттам напрямую через SHA1, вам придется удалить репозиторий и заново создать его.
Итак, если вы не можете ждать периодического gitHub gc, тогда вам нужно воссоздать.
Ответ 3
Вам также придется запускать ту же команду на стороне сервера. Большинство людей просто настраивают работу cron или аналогично, чтобы периодически выполнять этот вид домашнего хозяйства.