我只是运行了
git add .
,但这让我陷入了一个奇怪的情况,即具有嵌套Git仓库的子目录未被注册为父仓库的子模块。那么:在父工作目录中使用“git add .”后如何处理包含独立检出的嵌套git仓库的子目录(以获取正确的子模块)?
例如:
[imz@z super-existing-sub]$ ls
c sub
[imz@z super-existing-sub]$ ls -a sub/
. .. a .git
[imz@z super-existing-sub]$
所以,在
super-existing-sub
中已经存在一个预设的 super-existing-sub/sub
git 存储库。当我在
super-existing-sub
中运行时:$ git init
$ git add .
如何正确地将现有的Git仓库注册为子模块?
现在,Git已经以某种方式跟踪它:
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: c
new file: sub
$
但是git submodule
存在一些问题:
$ git submodule status
No submodule mapping found in .gitmodules for path 'sub'
$
如何将它转换为正确的子模块?
我尝试按照答案所建议的方式进行操作(由Victor和我组成),即git submodule add URL subdir
,但不幸的是,这种方法会导致问题:
$ git submodule status
No submodule mapping found in .gitmodules for path 'wp-content/themes/liquorice'
$ git submodule add git@github.com:/nudgeme/Liquorice.git ./wp-content/themes/liquorice
'wp-content/themes/liquorice' already exists in the index
/sshx:kosmoplus:/home/kosmoplus/kosmoplus.ru.old $ git submodule status
No submodule mapping found in .gitmodules for path 'wp-content/themes/liquorice'
$
git submodule add
或任何其他git submodule
命令,而是直接运行了git add .
。 - imz -- Ivan Zakharyaschev