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

Ссылка скопирована
Git
1 ответ

У меня есть общая папка проекта, которую я зачем-то сделал общим репозиторием
После в ней решил добавить еще 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 fetch тоже скачивает обновления всех веток. В чем отличие?
  • Сергей Кузнецов, только с указанием --all, и отличие легко нагуглить
  • Удалить папку .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 .

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Елена Вебер Ответ

    Для выполнения команд 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.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно