Включить каталог репозитория git в собственный с полной функциональностью

Недавно мы решили отделить подпроект foo от нашего основного проекта. Мы не хотим включать все foo, например, все тесты, связанные с foo, можно безопасно хранить в foo /.

Теперь у меня есть два хранилища:

main/
   include/folder1
   include/foo/
   Test/

foo/
    include/...
    Test/...

и я хотел бы заменить main / include / foo на foo / include. Это возможно с помощью git subtree split, Проблема в том, что это переписывает историю, и я не уверен, как изменения в main / include / foo можно перенести в / foo / include. git subtree push -P include/foo/ foo дает ужасные результаты.

Кто-нибудь знает, как это сделать правильно?

1 ответ

Вы должны сделать раскол с git subtree split ... как вы сделали, но если вы хотите, чтобы это было в отдельном хранилище, используйте git submodule иметь его в качестве внутреннего репо в отдельном репозитории.

Submodules разрешить встраивание внешних репозиториев в выделенный подкаталог дерева исходных текстов, всегда указывающий на конкретный коммит.


git submodule

Разбейте ваш большой проект на подпроекты, как вы делали до сих пор.
Теперь добавьте каждый подпроект в основной проект, используя:

git submodule add <url>

После того, как прогноз будет добавлен к вашему репо, вы должны его инициализировать и обновить.

git submodule init
git submodule update

Это иллюстрация субмодуля - проекта внутри другого проекта, в котором каждый проект является отдельным проектом.


git subtree

Git поддерево позволяет вам вставить любой репозиторий как подкаталог другого

Очень похоже на submodule но главное отличие в том, где ваш код управляется. В подмодулях контент размещается внутри отдельного репо и управляется там, что позволяет вам клонировать его и во многие другие репо.

subtree управляет контентом как частью корневого проекта, а не как отдельный проект.

Вместо того, чтобы записывать, как его настроить и понять, как его использовать, вы можете просто прочитать этот отличный пост, который объяснит все это.

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/

Другие вопросы по тегам