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