2015-06-26 2 views
0

Я хотел бы изменить одну папку в моем проекте на подмодуль. Это мой (sumplified) структура каталогов:Как изменить отслеживаемую папку в подмодуль git

|-app <- the root of git project 
|--themes 
|--plugins 
|--lib 

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

После создания нового репо для плагинов, Я устал git submodule add <submodule-repository> plugins, но потом я получаю сообщение о чтениями

приложения/плагинов уже существует в индексе

Конечно, это существует в индексе, поскольку он был отслежен как часть основного репозитория проекта.

Как его решить? Должен ли я, возможно, удалить основную папку .git, добавьте app/plugins в .gitignore, запишите еще раз, а затем запустите git submodule add?

На самом деле возникает другой вопрос: должна ли добавлена ​​папка, которая является подмодулем проекта, .gitignore проекта, который включает в себя подмодуль?

+0

Подразделы Git звучат отлично на бумаге, но это боль для работы. Вместо этого используйте git-поддеревья. – spuder

ответ

0

Мне удалось ответить на мой вопрос. Возможно, я отправил слишком рано. Тем не менее, возможно, это поможет некоторым людям в будущем:

Для того, чтобы включить папку отслеживаться в текущем проекте в подмодуль этого проекта, я принял следующие шаги:

  1. Инициализировать новый репозиторий в папке который позже будет подмодулем;
  2. Зафиксируйте содержимое пульта дистанционного управления;
  3. Удалите эту папку из основного проекта с помощью git rm -rf <folder_that_will_be_a_submodule>;
  4. Теперь сделайте то же самое, но с rm -rf;
  5. Перейти к вашему проекту root (где живет главный .git);
  6. Выполнение git submodule add <repository>;
  7. Удалить ссылки на папку, которая теперь является подмодулем, с вашего основного .gitignore (если на нем указана ссылка).

Надеюсь, это поможет кому-то.

Смежные вопросы