Есть ли способ удалить некоторые файлы из истории git?
-
01-07-2019 - |
Вопрос
Я перенес пару проектов из Subversion в git.Это работает действительно хорошо, но когда я клонирую свой репозиторий, он получается очень длинным, потому что у меня есть вся история большого количества файлов .jar, включенных в передачу.
Есть ли способ сохранить только последнюю версию файла определенного типа в моем основном репозитории?В основном я хочу удалить старую версию двоичного файла.
Решение
Вы можете удалить старые версии либо с помощью "git rebase" -i, либо "git filter-branch".
http://schacon.github.com/git/git-filter-branch.html
http://schacon.github.com/git/git-rebase.html
Другие документы и учебные пособия:http://git-scm.com/documentation
Сохранение только текущей версии с этого момента не поддерживается.Ваш лучший выбор - вместо этого сохранить в системе управления версиями небольшой скрипт, который загружает (или создает, или иным образом генерирует) большой файл .jar.
Поскольку это изменяет историю, это сделает все предыдущие клоны или извлечения из этого репозитория недействительными.
Другие советы
Короче говоря, это потребовало бы переписывания всего дерева коммитов git, чтобы исключить файлы.Вы пробовали использовать git gc
и git pack
чтобы git сжал ваш репозиторий?