Почему Git хранит URL-адреса субмодулей в двух местах? - PullRequest
0 голосов
/ 04 февраля 2020

При обновлении Git путей подмодулей, когда мы переключали хосты на работе, я с удивлением обнаружил, что пути хранятся в .gitmodules и в файле .git / config.

Что такое мышление / причина этого?

1 Ответ

3 голосов
/ 04 февраля 2020

Файл .gitmodules поставляется вместе с репозиторием и указывает местоположение, которое будет использоваться при клонировании репозитория fre sh. Однако .git/config используется для хранения значений, которые вы sh используете для данного экземпляра.

Этот подход полезен, когда вы sh используете другой URL-адрес, отличный от указанного в конфигурации. Например, у вас может быть внутреннее зеркало подмодуля или вы можете использовать sh вместо S SH вместо HTTPS. Это также означает, что содержимое хранилища не требуется, кроме как во время первоначального клонирования, поэтому вам не нужно беспокоиться о git pull или git checkout от ненадежного форка, который изменяет вашу конфигурацию и конфликты слияния на .gitmodules не влияют на подмодуль операций.

Кроме того, модель безопасности Git не допускает ненадежных файлов конфигурации: тот, кто может изменить конфигурацию вашего хранилища, может выполнить произвольный код. Копируя только указанные c параметры конфигурации и только один раз, Git может избежать необходимости иметь специальный код для чтения только очищенных записей из рабочего дерева.

Если вы хотите синхронизировать c их, Вы можете использовать git submodule sync для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...