通过子模块添加本地.git失败

时间:2015-05-06 14:55:55

标签: git

文件结构:

www
 |- project
     |- .git
 |- dist
     |- .git

终端:

karl@karl-laptop:~/www/project$ git submodule add ../dist dist
Cloning into 'dist'...
conq: repository does not exist.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'git@bitbucket.org:user/dist' into submodule path 'dist' failed

我很难找到如何在本地回购中使用子模块!正如你所看到它想要从git @ bitbucket克隆,但我希望它从本地仓库克隆。

我通常使用ssh推送到bitbucket。

2 个答案:

答案 0 :(得分:1)

git文档说:

  

git submodule add repository [path]

     

repository是新子模块的原始存储库的URL。这可以是绝对 URL,或者(如果它以./或../开头),相对于超级项目的原始存储库的位置。

如果要从文件系统克隆,则需要指定绝对文件路径。如果您提供./../(就像您一样),它将尝试从超级项目的原点获取,在您的情况下是bitbucket.org。

答案 1 :(得分:0)

git submodule add的参数是<repository><path>,其中<repository>是对“远程”存储库的引用,<path>是内部的相对路径您当前安装子模块的存储库。

例如,如果我在作为git存储库的目录project1中工作,并且我想在../project2添加lib/project2作为子模块,我会运行:

$ git submodule add ../project2 lib/project2
Cloning into 'lib/project2'...
done.

现在我可以运行git submodule来查看子模块的状态:

$ git submodule
 2c1e66331909365e5c4d0f11659a1baeb863b3f0 lib/project2 (heads/master)