Скопируйте проект Git в новое репо с подмодулями в такт, используя исходное дерево

Что я пытаюсь сделать Я хотел бы скопировать "стартовую тему" wordpress, которую я собрал вместе с библиотекой подмодулей из различных репозиториев. (Например, normalize-css или scrollmagic). Он прекрасно работает в моей текущей папке проекта, но когда я пытаюсь скопировать тему в новую папку, переименовать папку родительской темы, а затем добавить ее в новый репозиторий, я не могу заставить ее отображаться в исходном дереве. Он просто хочет добавить файлы подмодулей в основной репозиторий, как обычные файлы.

Что я пробовал: сначала я скопировал папку начальной темы в новое место и дал ей новое имя. Затем я обновил файлы внутри, чтобы отразить новое имя папки в следующих областях: «файл модуля .git», находящийся в папке подмодуля, в «корневом файле проекта .gitmodules». Я также заметил, что в корневой папке проекта .git также появляется папка модулей. Я не уверен, что с этим делать. Я скопировал его в новую папку .git и обновил файл конфигурации с соответствующим изменением имени папки на пару в качестве теста, но, похоже, ничего не сделал. Кстати, я также пробовал субрепозитории, но у меня тоже были проблемы с этим.

Это то, что мне придется вручную добавлять в каждый новый проект, или есть способ перенести их в новое репо?

Исходная структура папок | Сравнение новой структуры папок ниже (если поможет) введите здесь описание изображения

1 – это ветвь, с которой я начинаю, а “Новая” – ветвь, которую я скопировал.

введите здесь описание изображения введите здесь описание изображения


person Tom    schedule 23.11.2019    source источник


Ответы (1)


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

Он просто хочет добавить файлы подмодулей в основной репозиторий, как обычные файлы.

Затем вам нужно убедиться, что вы копируете только файлы, а не любую подпапку .git.
Если у вас есть подпапка .git, SourceTree покажет вам только корневой каталог содержимого этого подмодуля в виде вложенного репозитория Git.

person VonC    schedule 23.11.2019
comment
Я удалил файл .git в папке подмодуля, и он все еще отображается. Я также попытался запустить git submodule init и git submodule, чтобы увидеть, заставит ли это его также просмотреть файл .gitmodules. Это тоже не помогло. - person Tom; 23.11.2019
comment
Вы добавили, зафиксировали и нажали? - person VonC; 24.11.2019
comment
Да, предполагая, что все, что мне нужно, это коммит, но я также настаивал на том, чтобы быть уверенным. - person Tom; 24.11.2019