#git
#git
Вопрос:
За время существования моего репозитория git в него было добавлено множество двоичных файлов мультимедиа. Теперь эти медиафайлы были удалены.
Однако я подозреваю, что репозиторий хранит информацию об этих медиафайлах в архиве репозитория, поскольку размер моего репозитория составляет 400 МБ.
Я читал о командах очистки, таких как git-gc --aggressive
но я не думаю, что это позволяет мне напрямую «забыть» эти старые медиафайлы.
P.S. — в то время эти медиафайлы фактически были частью репозитория SVN, и с тех пор я использовал git-svn для преобразования репозитория в git.
Комментарии:
1.
git clone --depth X
допускает мелкое клонирование, но это не останавливает тот факт, что основное репозиторий по-прежнему содержит историю для всех этих больших файлов.
Ответ №1:
Если они являются частью истории какой-либо из ваших ветвей, то git необходимо сохранить содержимое этих файлов, иначе у вас была бы неполная история.
Единственный способ полностью удалить их — это переписать историю этих ветвей и удалять их из коммитов, где они были добавлены, и далее, пока они не были удалены.
Моим первоначальным советом было бы не беспокоиться о них. Теперь они никогда не изменятся, поэтому, кроме первоначального клонирования и размера репозитория, они не будут оказывать никакого другого влияния на производительность операций в конце текущих ветвей.
Если вы решили переписать историю своего репозитория, вам, вероятно, нужно посмотреть на что-то вроде git filter-branch
с помощью --index-filter
или --tree-filter
.
Обратите внимание, что любой, у кого есть active work, созданный на текущем репозитории с помощью active work, должен быть осторожен при выполнении соответствующей операции перебазирования или рискует объединить все старые коммиты и вернуть объекты, от которых вы пытаетесь избавиться.
Комментарии:
1. После прочтения
git filter-branch
документации, я думаю, мне нужно будет задать еще один вопрос о том, как на самом деле ее использовать 🙂