Как сделать часть существующего репозитория МЕРЗАВЦА подмодулем

Только что я нашел эта статья об использовании отражения и парсинге считывать двоичные данные. В этом случае автор использует отражение для чтения двоичного файла Java .class файлы. Но если Вы считываете данные в файл класса, это может иметь некоторую справку.

28
задан Dom 1 July 2016 в 22:46
поделиться

1 ответ

Общая идея состоит в том, чтобы использовать ' git filter-branch' и следующие шаги:

1) Создайте подмодуль, используя --subdirectory-filter ] filter-branch (после клонирования вашего репо).

$ git filter-branch --subdirectory-filter ABC HEAD -- --all

См. Этот вопрос SO , чтобы узнать больше об этом шаге.

2) Создайте суперпроект, используя индексный фильтр filter-branch , чтобы удалить подмодуль.

$ git filter-branch --index-filter "git rm -r -f --cached --ignore-unmatch ABC" --prune-empty HEAD

3) Зафиксируйте подмодуль в последней версии суперпроекта.

См. Отключить подкаталог в отдельный репозиторий git для практического примера.

Каждый подмодуль будет хранить свою историю.
But as said in this patch proposal, it would:

lose all the historical connections between the superproject and the submodule, breaking tools like 'git bisect', and making it difficult to recover old releases.

Ideally, each version of the newly created superproject would be linked to the correct version of the submodule (and all the .gitmodules entries would be set up correctly, too, throughout the project's history)

If you do not need to have previous history linked to the new submodules, you can follow the steps mentioned above.
Но если вам нужно перейти от более старой точки, когда есть ссылки на ваши подмодули (которые в настоящее время являются простыми подкаталогами), вы можете попробовать сценарий, упомянутый в патче, на который я ссылаюсь. Это обсуждается в этой ветке , но пока интегрировано в Git, как говорит Junio ​​C Hamano:

К сожалению, я не думаю, что мы полностью разработали (и не реализовали вообще) поведение для проверки различных моментов истории, в которой тот же подмодуль перемещался в дереве суперпроекта.

14
ответ дан 28 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: