Отказ от ответственности : я уверен, что заголовок этих вопросов уже поднял все ваши красные флажки и заставил вас хотеть или поджечь меня, или дать мне некоторые объяснения о том, почему переписывание истории является серьезным грехом , Это нормально, вы можете это сделать, но, пожалуйста, также ответьте на вопрос, который у меня есть.
Я допустил несколько очень и очень серьезных ошибок в своем репо git, которые привели к тому, что он увеличился до нескольких гигабайт! К счастью, это мое личное репо, поэтому я переписал историю, чтобы удалить все ошибки. Я следовал этим инструкциям , в основном:
- Найдите все файлы, которые я хочу удалить.
- Используйте git -filter-branch для их удаления.
- Удалить записи из журналов и ссылок
- Повторный сбор мусора.
Делая это, я сократил репо с нескольких гигабайт до одного мегабайта, ура ! Я получил git push origin --force --all
, и все успешно обновилось.
Теперь я хочу клонировать мой репо в новую систему, чтобы проверить, что мое переписывание работает. Когда я клонирую, я получаю это:
remote: Enumerating objects: 6359, done.
remote: Counting objects: 100% (6359/6359), done.
remote: Compressing objects: 100% (4857/4857), done.
fatal: The remote end hung up unexpectedly 1.70 GiB | 3.05 MiB/s
Это кажется мне странным. Прежде всего, мой репо уже не несколько гигабайт, а всего 1 мегабайт. Кроме того, у меня нет 6539 объектов. После переписывания у меня только 2128 объектов. Похоже, что он загружает репо, прежде чем я нажал на переписывание.
Поэтому мой вопрос: как я могу получить удаленное репо, чтобы увидеть, что я переписал историю, чтобы сделать репо намного, намного меньше?
Спасибо!
PS Репо находится на битбакете.