Итак, вы знаете, какой коммит ввел огромный каталог. Скажем, это было сделано в ревизии AAAAAAA
.
Чтобы избавиться от коммита, недостаточно удалить каталог (с коммитом BBBBBBB
) и выполнить повторную регистрацию: коммит AAAAAAA
все еще там, взорвав ваш размер репо.
Чтобы избавиться от коммита, нам нужно git rebase
. Откройте консоль git и введите
git rebase -i AAAAAAA~1
Откроется редактор, в котором коммит AAAAAAA
находится в первой строке. Удалите эту строку (т. Е. Когда Vim является вашим редактором, нажмите d d ) и подтвердите, где вы снова удалили каталог (BBBBBBB
), сохраните файл и выйдите (:wqa
).
После этого начинается перебазировка, и когда она заканчивается, AAAAAAA
и BBBBBBB
больше не существует. На самом деле.
Теперь вы также можете вызвать уборку с помощью git gc
и принести чашку кофе во время работы.
См. Также этот ответ: git push heroku - прекратить загрузку герои / загрузку массивного файла