При размещении Git на Bitbucket существует жесткий лимит в 2 ГБ — если он превышен, у вас будет доступ к репозиторию только для чтения. Чтобы предотвратить это, вы можете, например, задним числом удалить большие папки или файлы из ваших коммитов. Но и в других случаях (если данные доступа попали в историю или node_modules снова перешли в мастер) вам придется задним числом манипулировать историей Git, вопреки ее природе.
Bitbucket написал об этом подробную статью . Чтобы выполнить все действия по кейсу, мы сначала создаем новый репозиторий.:

Затем мы клонируем репозиторий в пустую папку на локальном компьютере.:
6ab7686fc508ce87c52b10bb5d01ee51
Теперь создаем две подпапки с файлами случайного содержания.:
6ab7686fc508ce87c52b10bb5d01ee51
Мы сейчас подталкиваем к хозяину:
6ab7686fc508ce87c52b10bb5d01ee51
Теперь мы почти достигли жесткого лимита в 2 ГБ на Bitbucket.:

Мы также можем проверить это локально (см. «Размерный пакет»).:
6ab7686fc508ce87c52b10bb5d01ee51

Теперь задача состоит в том, чтобы задним числом удалить "foo" из репозитория, чтобы уменьшить его размер вдвое. Для этого сначала редактируем текущий HEAD и записываем папку в gitignore:
6ab7686fc508ce87c52b10bb5d01ee51
Наконец, мы удаляем папку с помощью BFG Repo Cleaner (BFG требует наличия текущей JRE в системе в качестве системного требования):
6ab7686fc508ce87c52b10bb5d01ee51
Теперь мы можем увидеть результат локально:
6ab7686fc508ce87c52b10bb5d01ee51

Но на Bitbucket размер репозитория еще не изменился, потому что сборщик мусора еще не был запущен удаленно и bitbucket не выполняет «git gc» при каждом нажатии.:

Это также подтверждается поддержкой:

Поэтому лучше всего отправить запрос напрямую на support@bitbucket.org, чтобы вручную запустить «git gc» в репозитории. Спустя короткое время это также сделала служба поддержки.:

Если вы «заново» переместите репозиторий на другой компьютер, на диске останется только 0,9 ГБ. Если у кого-то есть версия 1,8 ГБ, доступная локально, достаточно «git pull», за которым следует «git gc».