我有一个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中包含子模块?
感谢您的帮助。
答案 0 :(得分:1)
看起来我需要将主项目的ssh密钥添加到两个较小的项目中,以便我可以ssh
在父(主)回购级别,不应该是这样的:所有推动都是推动.gitmodules
和2 gitlinks(special entries in the index)代表那些2个子模块。
推送更有可能找不到正确的.ssh/known_hosts
或公共/私有ssh密钥,以便推回到app.rhcloud.com
上游回购:请参阅“{{3} }“和”SSH connection problem with “Host key verification failed…” error“。