Как отключить подкаталог в Git, но сохранить все ветки - PullRequest
2 голосов
/ 01 декабря 2010

Я следил за Ответами на этот вопрос Отделил подкаталог в отдельный репозиторий Git и добился некоторых хороших успехов с простыми подкаталогами, которые находятся только в одной ветви, но теперь я столкнулся с подкаталогом, который заваленнесколько ветвей, поэтому простая

git filter-branch --subdirectory-filter SUBDIRECTORY HEAD

не выполняет эту работу.

Нужно ли переключаться на каждую ветку и выполнять команду filter-branch, или есть что-то, что может сделатьскрытое изменение всей истории?

1 Ответ

7 голосов
/ 01 декабря 2010

HEAD в конце вашей команды указывает ref для обработки.Вы можете задать любое количество других команд, включая --all для указания абсолютно всего, --branches для указания только веток или --remotes для указания только удаленных устройств.Возможно, вам придется поставить перед этими опциями префикс --, чтобы сообщить ответвлению фильтра, что это аргументы списка ревизий.Обратите внимание, что --all попытается обработать теги явно, что может быть не тем, что вы хотите.Вы можете использовать --branches --remotes, чтобы указать все ссылки без тегов.Вы также можете добавить --tag-name-filter cat для перезаписи тегов, которые указывают на переписанные коммиты - ваша оригинальная команда оставит эти теги без изменений.

...