Как удалить локальную историю мерзавцев после коммита? - PullRequest
3 голосов
/ 22 марта 2012

Я бы хотел перейти с Dropbox на Sparkleshare с открытым исходным кодом.Он использует Git для синхронизации и управления версиями.Если, скажем, у меня в папке был файл размером 1 ГБ, он остается в истории локальной папки .git.Но я хотел бы иметь такие тяжелые данные на сервере, а не на клиенте.Как я могу зафиксировать свой репозиторий и удалить локальный с помощью git?Большое спасибо!

1 Ответ

7 голосов
/ 08 мая 2016

Решение, удаляющее историю

  1. git fetch --depth=1, чтобы удалить старые коммиты. Это делает старые коммиты и их объекты недоступными.
  2. git reflog expire --expire-unreachable=now --all. Срок действия всех старых коммитов и их объектов
  3. git gc --aggressive --prune=all для удаления старых объектов

Конкретное решение просто удалить большой файл в локальной истории

  • GitHub предлагает Git Large File Storage , который всегда хранит большие файлы на сервере и извлекает их только при оформлении заказа. Очень прост в установке и использовании - в случае, если ваш репозиторий находится на GitHub, bitbucket или gitlab.
  • git-annex - позволяет хранить большие файлы в любом месте

Обсуждение: Чем отличаются Git LFS и git-annex?

...