У меня есть существующий репозиторий git:
my-repo/
.git/
foo/
foo-content-goes-here
bar/
bar-content-goes-here
Я хочу получить следующие структуры репозитория:
my-foo-repo/
.git/
foo-content-goes-here
my-bar-repo/
.git
bar-content-goes-here
Я смотрел на Отделить (переместить) подкаталогв отдельный репозиторий Git .Это почти делает то, что мне нужно.
Я выполнил следующие команды:
$ cd path/to/my-repo/../
$ git clone --no-hardlinks my-repo foo-repo
$ cd foo-repo
$ git remote rm origin
$ git filter-branch --tag-name-filter cat --subdirectory-filter foo \
--prune-empty -- --all
$ git reset --hard
$ git gc --aggressive
$ git prune
Я говорю, что это почти работает.Отмеченные проблемы:
- Шаг
git gc --aggressive
занимает более 2 часов для моего хранилища.У меня есть 13 репозиториев, которые нужно извлечь из моего текущего единственного репозитория.Я могу написать сценарий этого процесса, но был бы признателен за любые способы ускорить его? git log
и gitk
покажите мне ожидаемые коммиты для нового foo-repo. gitX показывает мне ожидаемые коммиты, а также отключенное дерево со старой историей.Размер каталога foo-repo намного больше, чем я ожидал, так что, вероятно, у меня остались некоторые вещи, которые нужно очистить.Я не уверен, как избавиться от этого материала?Нужно ли вообще избавляться от нее перед нажатием?