Я бы хотел разделить модули, распространяемые с более крупным приложением, на отдельные подмодули и сохранить возможность извлечения из восходящего потока.
Так что это сложнее, чем Отсоединить подкаталог в отдельный репозиторий Git . Я не только один раз использую git-filter-branch, но и хочу сохранить возможность извлекать изменения в восходящем потоке после того, как я это сделал (а в восходящем потоке нет).
Просто перезапустить git-filter-branch для полной истории из апстрима сейчас, включая новые коммиты, не найденные в моей переписанной истории, не вариант, так как есть сотни модулей, для которых мне нужно это сделать, и количество коммитов увеличивается близко к 100.000.
Я предполагаю, что это включает в себя ограничение истории только новыми коммитами, переписывание их и добавление их после ранее переписанных коммитов, но я не уверен, как это сделать - и, возможно, есть лучший подход.
Было бы неплохо, если бы ветки и теги тоже можно было сохранить, но это не является абсолютно необходимым, и если это усложняет вещи, я бы предпочел их потерять.