Git子模块更新和身份验证

4

我刚开始使用git(就在此时此刻)。我被邀请使用一个包含一些子模块的项目,并且已经通过我的Github账户获得了权限。当我克隆这个仓库时,出现了一些错误:

$ git submodule init
Submodule 'js/Common/enginelite' (git@github.com:clientName/EngineLite.git) registered for path 'js/Common/enginelite'

$ git submodule update
Cloning into 'js/Common/enginelite'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

在此期间是否有一种方法可以传递凭据?我需要在本地或者Github上进行某些操作吗?谢谢!


https://help.github.com/articles/error-permission-denied-publickey 对我很有帮助。一个钥匙链就是不起作用。 - panzhuli
3个回答

4

如果有名为.git的目录,请查看js / Common / enginelite。如果有名为.git的文件,则会有一行写着“gitdir:...” 的行,打开该文件并查看其中的config文件。希望该文件的内容可以告诉您在哪里添加您的用户名@。


1
在SuperUser StackExchange上还找到了关于使用明确身份文件配置ssh的信息:http://superuser.com/questions/272465/using-multiple-ssh-public-keys - karmakaze

0

如果你希望 Git 子模块使用与父仓库相同的身份验证方式,并且它们托管在同一个机构下,可以在 Git 子模块中使用相对路径。请在 .gitmodules 文件中提供如下相对路径:

[submodule "test-git-sync"]
path = test-git-sync
url = ../test-git-sync.git # use relative path to the git repo

0

由于子模块是一个独立的git仓库,我最好的猜测是您需要通过您的github账户获取访问主git仓库EngineLit.git的权限。

我猜测权限不会被子模块继承。


1
我可以使用我的权限在Github上看到整个存储库。有没有办法将我的密钥添加到我的请求中? - panzhuli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接