【发布时间】:2015-04-09 08:46:13
【问题描述】:
如果我从我的工作(父)目录创建初始提交,但存在具有独立签出 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 内部已经有一个预先存在的 super-existing-sub/sub git repo。
在我跑完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'
$
【问题讨论】:
-
这里他们在Nested GIT repo gotchas! (OK, here is a GIT quiz.) 中有类似的历史:他们
git add .在子目录中拥有Git repo,没有git submodule add或任何其他git submodule命令。
标签: git git-submodules git-add git-init