有一个github repo A有一个子模块回购B. A& B是公开的,因此任何人都可以使用git clone
克隆它们或只下载zip。
A的.gitmodules
对B的引用是通过ssh连接字符串
url = git@github.com:PersonB/B.git
如果我从本地计算机运行git clone A --recursive
它工作正常,因为我的ssh密钥在github上。但是,我需要在服务器上运行,实际上是多个服务器,而不是我。因此,没有办法将所有这些ssh密钥添加到某人的github帐户中。如果我从服务器运行git clone A --recursive
,我会得到好的
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
此处的第一个选项是要求开发人员A更改url
中的.gitmodules
,但这可能不是唯一的此类回购。第二个选项是在浅层克隆后自己重写.gitmodules
,然后进行子模块更新。有没有更好的方法?