cdw*_*son 6 git add git-submodules
如果我添加一个当前不存在的子模块,则不会添加任何子模块信息.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
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加一个当前作为子模块存在的仓库,则该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
Run Code Online (Sandbox Code Playgroud)
我会假设在这两种情况下,git submodule add只会修改.gitmodules,而且git submodule init会更新项目.git/config.
为什么.git/config在第二种情况下修改而不是第一种情况?有人可以解释这种行为的理性吗?