Мое текущее понимание подмодулей git состоит в том, что он позволяет отслеживать несколько репозиториев как зависимости.
Это лучше, чем вставка кода, потому что он может отслеживать изменения восходящего потока и позволяет легко их обновлять.
Это лучше, чем клонирование репозиториев вручную в папку зависимостей, поскольку подмодули позволят вам легко просматривать все изменения и обновлять их все сразу. Это потребует фиксации всего кода зависимостей как части родительского проекта. Другие соавторы были бы вынуждены использовать те же версии зависимостей, поскольку код фиксируется вместе с остальной частью проекта.
Однако я не понимаю его преимуществ перед диспетчером пакетов, таким как npm. Atlassian утверждает, что «у диспетчеров пакетов есть обратная сторона - они требуют установки и управления версиями во всех местах развертывания исходного кода». Почему это недостаток и как субмодули git могут избежать этой проблемы?