SSH 项目的 URL 取决于用户名



我正在使用gerrit

所有项目的url都是这样的:

ssh://username@domain:port/project

标准git服务器(gitlab、github…)中,它看起来像这样:

git@domain:project.git

我的问题是gerrit url依赖于用户名

我想在我的一个项目中使用子模块,问题是在.gitmodules中,我最终得到了这样的东西:

[submodule "MyModule"]
    path = MyModule
    url = ssh://username@domain:port/project

这显然是错误的,因为每个用户的用户名都不一样

目前,我看到的解决方案如下:

1)在gerrit中使用通用ssh地址,就像在其他git服务器中一样(如果可能的话)

2)使用.gitmodules中的http地址,每个用户都必须调整其子模块的原始远程(脚本可能会这样做)

3)不要部署.gitsubmodule,而是使用一个脚本为每个用户添加子模块

我的问题是:

1)可能吗?还有其他选择吗?什么是最好的选择?

您不需要将用户名放在ssh-url中。如果服务器上的用户名与Gerrit上的用户名匹配,则该命令将在没有用户名的情况下正常工作。否则,您可以使用.ssh/config文件指定特定服务器的用户名:

Host dev.mydomain.com
    User myUserName

现在,每当ssh看到对dev.mydomain.com 的ssh调用时,就会添加myUserName@

我遇到了同样的问题,我使用GIT_SSH解决了这个问题。GIT_SSH环境变量定义了GIT需要创建SSH连接时使用的脚本的路径。

您可以将其设置为GIT_SSH=<PATH>/git-ssh.sh
git-ssh.sh的内容如下:

#!/bin/bash
ssh domain:port/project -l $USER

相关内容

  • 没有找到相关文章

最新更新