Как удалить локальную историю git после фиксации?

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

Ответ 2

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

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

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

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

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