Если я добавлю субмодуль, который в данный момент не существует, информация о субмодуле не будет добавлена в .git/config
.
$ mkdir testing
$ cd testing
$ git init
$ git submodule add git@git.server:submodule.git
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
Однако, если я добавлю репо, который в настоящее время существует как подмодуль, URL будет добавлен в .git/config
:
$ mkdir testing
$ cd testing
$ git init
$ git clone git@git.server:submodule.git
$ git submodule add git@git.server:submodule.git
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[submodule "submodule"]
url = git@git.server:submodule.git
Я бы предположил, что в обоих случаях git submodule add
изменил бы только .gitmodules
, а git submodule init
обновил бы .git/config
проекта.
Почему .git/config
изменяется во втором случае, а не в первом? Может кто-нибудь объяснить рациональное для этого поведения?