我们正在设置一个包含多个子模块和多个用户的git项目。所有用户都有ssh访问git repos。
子模块可以很好地更新 userA
问题是.gitmodules
文件中的网址是 ssh:// 用户 A @ server:port / submodule.location.git 格式(git submodule命令)像那样添加。)
因此当 userB 克隆repo并轮胎更新子模块时,网址仍然是 userA ...因此克隆将失败。
尝试删除用户名ssh://server:port/location.git
,但仍然因公钥错误而失败。
我们该如何处理?
我应该使用什么格式,以便git始终替换当前用户?
谢谢。
答案 0 :(得分:0)
您可以做的是切换到git://
协议。该协议是ssh协议,它使用ssh密钥来识别用户,而您不需要使用用户名。
例如,这是来自github的样本:
git@github.com:...
正如您所看到的,您在URL中没有任何用户名(如果您拥有创建存储库的用户和克隆的用户)
切换到git protocol
,您不必在网址中设置任何用户。只需创建密钥,将其添加到您的服务器即可。