如果我从我的工作(父)目录创建初始提交,但有独立签出 git repos 的子目录,会发生什么?
我只是这样做了git add .
,但是当具有嵌套 Git 存储库的子目录未注册为父存储库的子模块时,这给我带来了一个奇怪的情况。
所以:如何在初始“git add”之后继续。在父工作目录中,有子目录具有独立签出的嵌套 git repos(为了获得正确的子模块)?
一个例子:
[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/sub
git repo super-existing-sub
。
我跑进去后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'
$
如何将其转换为正确的子模块?
我试图按照答案中建议的方式进行(由维克多和我组成),即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'
$