почти забыл об этом ... извините.
как оказалось, нет простого решения проблемы, которую я описал. Я экспериментировал с несколькими вариантами, но у каждого есть недостатки ... но, тем не менее, может быть полезно, если у кого-то еще есть такая же проблема:
удалить ненужный файл / папку из истории git
git filter-branch --tree-filter "[ -f hugefile.bin ] && rm hugefile.bin" -f
Плюсы:
- эффективно удаляет файл из вашего хранилища
Минусы:
- вам придется очистить свой репозиторий (избавьтесь от старых коммитов, так как они все еще находятся в git-репо). либо с
git gc --prune=now
или просто клонировать ваш репозиторий (по умолчанию не будет клонировать вашу удаленную ветку SVN)
- ветка, которую вы получите, больше не будет синхронизироваться с svn (если вы сделаете другую
git svn fetch
, git все равно будет получать неизмененную историю
вырез истории SVN при первоначальном клонировании
git svn clone -r N http://yoursvnaddress myPartlyClonedRepo.git
где N будет самым ранним номером ревизии, который синхронизируется
Плюсы:
- позволяет вам сохранить размер вашего хранилища небольшим (что я и хотел в первую очередь)
Минусы:
- ранняя история "потеряна"
редкая проверка
это было последнее добавление в git 1.7 и позволяет вам выборочно изменять ваш рабочий каталог
git config core.sparsecheckout true
echo "*" > .git/info/sparse-checkout
echo '!path-to-huge-unwanted-dir/' >> .git/info/sparse-checkout
git read-tree -m -u HEAD
Плюсы
Против
- не влияет на размер вашей базы данных (.git)