如何在openshift中引用子模块

时间:2015-08-31 14:21:33

标签: node.js git ssh openshift git-submodules

我有一个OpenShift帐户,它为您工作的每个项目提供了一个git存储库。我有一个主项目和两个较小的项目,总共产生了3个git存储库。

我刚刚开始在主项目中使用两个较小的项目,并看到git可以使用submodule命令。我已经将它们添加到自定义目录中,如下所示:

git submodule add ssh://...@app.rhcloud.com/~/git/app.git/
git submodule add ssh://...@api.rhcloud.com/~/git/api.git/

产生了如下目录结构:

node_modules
custom
    app ------ full of tasty files
    api ------ full of tasty files
index.js
.gitmodules

在.gitmodules文件中我有

[submodule "custom/api"]
  path = custom/api
  url = ssh://...@api.rhcloud.com/~/git/api.git/
[submodule "custom/app"]
  path = custom/app
  url = ssh://...@app.rhcloud.com/~/git/app.git/

这正是我想要的。这一切都在当地有效。

git add --all
git commit -m "new submodules"
git push

问题是当我运行git push时,它会返回此错误:

remote: Host key verification failed.
remote: fatal: Could not read from remote repository.
remote:
remote: Please make sure you have the correct access rights
remote: and the repository exists.

看起来我需要将主项目的ssh密钥添加到两个较小的项目中,以便我可以使用ssh。有谁知道我怎么做或者有更好的方法在OpenShift中包含子模块?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

看起来我需要将主项目的ssh密钥添加到两个较小的项目中,以便我可以ssh

在父(主)回购级别,不应该是这样的:所有推动都是推动.gitmodules和2 gitlinksspecial entries in the index)代表那些2个子模块。

推送更有可能找不到正确的.ssh/known_hosts或公共/私有ssh密钥,以便推回到app.rhcloud.com上游回购:请参阅“{{3} }“和”SSH connection problem with “Host key verification failed…” error“。