SSH项目'网址取决于用户名

时间:2015-11-10 13:23:16

标签: git ssh git-submodules gerrit

我正在使用 gerrit

所有项目的网址看起来像这样:

ssh://username@domain:port/project

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

git@domain:project.git

我的问题是gerrit网址取决于用户名

我想在我的一个项目中使用子模块,问题是在.gitmodules中我最终会遇到这样的事情:

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

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

这里的时刻是我看到解决这个问题的选择:

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

2)使用.gitmodules中的http地址,每个用户都必须调整他的子模块'原始遥控器(脚本可能会为此做)

3)不要部署.gitsubmodules并使用将为每个用户添加子模块的脚本

我的问题是:

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

2 个答案:

答案 0 :(得分:3)

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

myUserName@

现在ssh会在看到dev.mydomain.com

答案 1 :(得分:0)

我有同样的问题,我通过使用GIT_SSH解决了。 GIT_SSH环境变量定义了Git需要创建ssh连接时使用的脚本的路径。

您可以将其设为GIT_SSH=<PATH>/git-ssh.sh git-ssh.sh的内容将是这样的:

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