Я хотел бы переключиться с Dropbox на open source Sparkleshare. Он использует git для синхронизации и управления версиями. Если скажу, что у меня был 1GB файл, который я удалил в своей папке, он останется в истории локальной .git-папки. Но я хотел бы иметь такие тяжелые данные на сервере, а не на клиенте. Как я могу передать свой репозиторий и удалить локальный с помощью git? Большое спасибо!
Как удалить локальную историю git после фиксации?
Ответ 1
Проверьте это, возможно, будет полезно
http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/
Ответ 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 отличаются?