Как выполнить команды гита для вложенного репозитория?
У меня есть общая папка проекта, которую я зачем-то сделал общим репозиторием
После в ней решил добавить еще 3 папки в каждой из которых создал с нуля репозитории
project - server - client - db |
project - server - client - db
Когда я захожу в папку project/server и оттуда запускаю команды
git remote update git status |
git remote update git status
У меня вылетают обновления гита, как, если бы я выполнил эту команду просто из папки project
Как мне запустить команды гита, которые будут относиться к вложенным папкам с их репозиторями?
Дополнительно:
Что за команда git remote update ?
Удалить папку .git в папке project и не страдать ерундой
- Главное помнить, что это удалит единственный репозиторий ))
Команды гита уже всегда применяются к текущему вложенному репозиторию. Но если выполнить команду git init внутри рабочего каталога существующего репозитория, то ничего не произойдет. Так что скорее всего эти вложенные репозитории у вас не создались.
Если инициализировать репозиторий в другой папке где-то вовне репозитория, а потом её перенести внутрь project, тогда получите желаемое.
Но общий репозиторий будет игнорировать подкаталог вложенного репозитория. Это для вас наверное станет неожиданностью тоже.
git submodule же ...
добавьте в свой project репозиторий субмодули server, client, db Работайте в каждой папке как в независимом репозитории. Есть ньюанс, после коммита/пуша субмодуля, надо коммиттить/пушить основной репозиторий.
К сожалению мало сценариев использовал, всего несколько раз настроил и работал, уже и не упомню всех нюансов.
Надеюсь что коллеги, кто в теме, дополнят большей информацией.
P.S. git clone --recurse-submodules Развернет ваш проект со всеми вложенными репозиториями
Если project тоже является проектом, у которого должен быть свой репозиторий, то вложенные проекты нужно добавить в .gitignore
/server/ /client/ /db/ |
/server/ /client/ /db/
Если вложенные папки уже отслеживаются гитом, нужно так же удалить их для гита
git rm -r --cached server git rm -r --cached client git rm -r --cached db git add . |
git rm -r --cached server git rm -r --cached client git rm -r --cached db git add .
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для выполнения команд Git для вложенного репозитория, вам нужно использовать подмодули Git. Подмодули позволяют включать другие репозитории в ваш основной репозиторий.
Чтобы добавить подмодуль к вашему репозиторию, выполните следующие шаги:
1. Откройте терминал или командную строку.
2. Перейдите в корневую директорию вашего основного репозитория.
3. Введите команду `git submodule add `, где `` - ссылка на репозиторий, который вы хотите добавить в качестве подмодуля, `` - папка, в которую будет клонирован подмодуль.
4. Затем выполните команды `git submodule init` и `git submodule update`, чтобы инициализировать и обновить подмодуль.
Чтобы обновить подмодуль до последней версии, выполните следующие шаги:
1. Перейдите в папку подмодуля с помощью команды `cd `.
2. Выполните команду `git pull origin master`, чтобы получить последние изменения из репозитория подмодуля.
Чтобы удалить подмодуль, выполните следующие шаги:
1. Удалите соответствующую строку из файла `.gitmodules`.
2. Удалите папку подмодуля.
3. Выполните команду `git rm --cached `.
4. Затем выполните команду `rm -rf .git/modules/`.
Используя подмодули Git, вы можете управлять вложенными репозиториями в вашем основном репозитории и обновлять их по мере необходимости. Надеюсь, эта информация поможет вам успешно работать с вложенными репозиториями с помощью Git.