@MishaXXL

Как выполнить команды гита для вложенного репозитория?

У меня есть общая папка проекта, которую я зачем-то сделал общим репозиторием
После в ней решил добавить еще 3 папки в каждой из которых создал с нуля репозитории
project
  - server
  - client
  - db


Когда я захожу в папку project/server и оттуда запускаю команды
git remote update 
git status

У меня вылетают обновления гита, как, если бы я выполнил эту команду просто из папки project

Как мне запустить команды гита, которые будут относиться к вложенным папкам с их репозиторями?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 4
yarkov
@yarkov
Помог ответ? Отметь решением.
Удалить папку .git в папке project и не страдать ерундой
Ответ написан
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Команды гита уже всегда применяются к текущему вложенному репозиторию. Но если выполнить команду git init внутри рабочего каталога существующего репозитория, то ничего не произойдет. Так что скорее всего эти вложенные репозитории у вас не создались.

Если инициализировать репозиторий в другой папке где-то вовне репозитория, а потом её перенести внутрь project, тогда получите желаемое.

Но общий репозиторий будет игнорировать подкаталог вложенного репозитория. Это для вас наверное станет неожиданностью тоже.
Ответ написан
Комментировать
Daemon23RUS
@Daemon23RUS
git submodule же ...
добавьте в свой project репозиторий субмодули server, client, db Работайте в каждой папке как в независимом репозитории. Есть ньюанс, после коммита/пуша субмодуля, надо коммиттить/пушить основной репозиторий.
К сожалению мало сценариев использовал, всего несколько раз настроил и работал, уже и не упомню всех нюансов.
Надеюсь что коллеги, кто в теме, дополнят большей информацией.
P.S. git clone --recurse-submodules Развернет ваш проект со всеми вложенными репозиториями
Ответ написан
Комментировать
vhood
@vhood
Не забывайте отмечать решения
Если project тоже является проектом, у которого должен быть свой репозиторий, то вложенные проекты нужно добавить в .gitignore
/server/
/client/
/db/

Если вложенные папки уже отслеживаются гитом, нужно так же удалить их для гита
git rm -r --cached server
git rm -r --cached client
git rm -r --cached db

git add .
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы