Как уменьшить репозиторий Git (изменить прошлые коммиты и добавить gitignore)?

Клонировал себе репозиторий сайта, в котором папка ".git" весит около 500 мегабайт, хотя сами файлы из рабочего каталога буквально 50 мегабайт. При изучении почему так, понял, что где-то в начальных коммитах потерялся файл ".gitignore" и в коммит попала папка "Media" с изображениями (картинки товаров в интернет магазине). Затем прошло еще несколько коммитов, в которых изменял код сайта (php, html, css), а также внутри папки Media происходили изменения (добавлялись новые картинки, изменялись размеры предыдущих картинок) и Git все это запоминал. Потом файл ".gitignore" вернули, а также добавили папку Media с картинками в исключения. Но размер папки ".git" стал уже 500 мегабайт. =((( Теперь каждый, кто клонирует себе репозиторий вынужден тащить такой груз.

Что я хочу (если такое возможно). У меня есть нормально настроенный файл ".gitignore" и я бы хотел, чтобы git забыл об любых упоминаниях всех файлов указанных в ".gitignore" из этих коммитов.

Мол был коммит, в котором добавлялось, допустим, два нужных файлах и какие-то изменения из папки "Media". А станет коммит, в котором просто добавлялось только два нужных файла и все.

Я мечтал, а может можно мой нормальный файл ".gitignore" пропихнуть в каждый коммит, и чтобы гит заново пересмотрел каждый свой коммит с учетом обновленного файла ".gitignore"?

К сожалению, вариант просто пересоздать репозиторий с нормальным ".gitignore" не подходит, т. к. мне нужна история изменения сайта. Т. е. история правкой php, html и css-файлов.

И еще, если у меня все-же получится переписать историю коммитов, то я потом смогу на bitbacket сохранить свою историю?
  • Вопрос задан
  • 1364 просмотра
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Сегодня такую чистку делают буквально в один клик.
# Вычистить каталог Media из истории проекта
git filter-repo --path "Media/" --invert-paths
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
https://git-scm.com/book/ru/v1/%D0%9E%D1%81%D0%BD%...
раздел "Удаление файлов"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы