Преобразование подкаталогов Git в подмодули

Использование Windows для разработки, Debian для серверов и репозиториев, Git Extensions в качестве клиента Git.

У меня есть следующие репозитории:

РЕПО1:

ROOT_OF_SITE1/

РЕПО2:

ROOT/
    /SITE1/
    /SITE2/
    /SITE3/

SITE2 и SITE1 используют одну и ту же кодовую базу, только SITE1 находится на несколько коммитов впереди, но, поскольку путь отличается, нельзя выбрать вишневые коммиты с SITE1 из REPO1 в SITE1 в REPO2.

Я полагаю, что одним из решений является преобразование подкаталога SITE2 в подмодуль Git, чтобы затем я мог выбирать коммиты из SITE1.

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

К сожалению, в настоящее время Git-клиент Git Extensions не поддерживает поддерево.


person klor    schedule 18.11.2019    source источник
comment
Покажите, как вы используете подмодули   -  person Mad Physicist    schedule 18.11.2019
comment
Как показать? Я просто помню, что у меня были проблемы с Git Extensions и подмодулями вместе.   -  person klor    schedule 18.11.2019
comment
Вы выполнили несколько команд, верно? Кем они были?   -  person Mad Physicist    schedule 18.11.2019
comment
Обычно я использовал Git Extensions GUI для создания подмодулей.   -  person klor    schedule 18.11.2019


Ответы (1)


Я бы использовал один репозиторий с SITE1 и разделил бы остальные сайты, используя git subtree. Вы можете разделить репозиторий на разные ветки, сохраняя несколько модулей в довольно чистом дереве:

git subtree split --prefix=site2 -b site2

Проверьте этот пост для получения дополнительной информации. Затем вы можете восстановить дерево, оставив действительно хорошую историю git.

person Carlos Cavero    schedule 18.11.2019
comment
К сожалению, клиент git Git Extensions в настоящее время не поддерживает поддерево. - person klor; 18.11.2019
comment
Вы можете использовать Git bash или аналогичный и командную строку - person Carlos Cavero; 18.11.2019
comment
Я прочитал статью о поддереве и нашел ее очень полезной: tsh.io/blog/ Я попробую поддерево из командной строки. - person klor; 19.11.2019
comment
Я не пробовал себя глубоко, но люди говорят, что это круто, и они рекомендуют использовать поддерево git вместо подмодуля git. - person Carlos Cavero; 19.11.2019