Разница между .gitmodules и заданием подмодулей в .git/config?
Наверное, очень глупый вопрос, - но я до сих пор указывал подмодули в файле .gitmodules. Недавно мне показалось, что, возможно, возможно просто использовать .git/config по той же причине, поэтому мне не нужно будет хранить посторонний файл в рабочем каталоге?
.git/config:
[submodule "path/to/repo"]
url = [email protected]:username/repo.git
.gitmodules
[submodule "path/to/repo"]
path = path/to/repo
url = [email protected]:username/repo.git
Это в основном одни и те же вещи?
Ответы
Ответ 1
Тот же ответ, что .git/info/exclude
и .gitignore
.
Файл .gitmodules
может быть включен в репозиторий и доступен всем (то есть, он может быть добавлен и зафиксирован как любой обычный файл), тогда как все, что находится в .git
(например, .git/config
), является приватным (вы не может добавить его в репозиторий).
Ответ 2
git submodule sync
обновит ваш файл конфигурации с помощью данных из файла .gitmodules, поэтому последний должен считаться "хозяином" - он передается между репозициями, указанными в @Artefact2.
Это полезно, когда URL-адреса субмодулей меняются вверх по течению, и вам нужно соответственно, обновите локальные репозитории.