如何添加一个与旧的,已删除的git目录同名的git子模块?

时间:2014-03-23 11:26:30

标签: git local directory git-submodules

我正在尝试将目录转换为子模块,并将内容有效地转换为内部具有专用子模块的git超级项目/项目。我有一个“内置”目录(我正在制作的目录,因为一些依赖项是封闭源代码,因此不在git repo中,这意味着有些人无法构建自己的版本),但我想把它变成一个单独的仓库,放在与以前相同的位置。也就是说,不是将/built作为回购跟踪的目录,而是希望它是/built作为由不同回购跟踪的子模块。

但是,当我尝试删除/built,提交,并执行git submodule add BUILT_REPO_URL built时,我得到:

A git directory for 'built' is found locally with remote(s):
  origin        BUILT_REPO_URL
If you want to reuse this local git directory instead of cloning again from
  BUILT_REPO_URL
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.

(我已将BUILT_REPO_URL替换为适当的git存储库托管网址。)

我不想重命名该目录,因为这看起来很奇怪,而且我已经构建了脚本以及我必须改变的东西。此外,还有其他目录我想要这样做,并且他们有一个相当设置的目录结构基于我正在使用的框架。我试过从缓存中删除文件(没有那些文件)和其他类似的步骤。这个问题也是不可谷歌的,因为我发现的所有结果都是将子模块更改为具有相同目录名的不同子模块。

1 个答案:

答案 0 :(得分:3)

确保您首先删除并提交了' built'文件夹中。

git rm -rf built
# or, if built isn't in the working tree
git rm --cached -rf built
git add -A
git commit -m "remove built"

然后,您可以尝试git submodule add