要克隆由gitolite管理的存储库,通常使用以下语法
git clone gitolite@server:repository
这告诉SSH客户端使用gitolite作为用户名连接到server的22号端口。当我尝试使用端口号:
git clone gitolite@server:22:repository
Git提示仓库22:repository不可用。如果SSH服务器使用不同的端口,应该使用什么语法?
"SCP风格"的Git URL语法(user@server:path
)不支持包含端口。如果要包含端口,必须使用ssh://
Git URL。例如:
ssh://gitolite@server:2222/repository
注意:相比于使用 gitolite@server:repository
,这里向远程端展示了略有不同的仓库路径(绝对路径 /repository
而非相对路径 repository
);Gitolite 可以接受两种类型的路径,其他系统则可能有所不同。
~/.ssh/config
中使用 Host
条目(请参阅您的 ssh_config(5) 手册页面)。通过这样的条目,你可以创建一个“SSH主机别名”,它包含了服务器名称/地址、远程用户名和非默认端口号(以及您可能喜欢的任何其他SSH选项):Host gitolite
User gitolite
HostName server
Port 2222
然后您可以使用非常简单的Git URL,例如gitolite:repository
。
如果您需要为多个人记录(和/或配置)此内容,则应使用ssh://
URL,因为不需要额外的配置。
如果只是给自己使用(特别是如果可能会从同一服务器访问多个存储库),那么使用SSH主机昵称可以节省一些打字。
host gitolite
user git
hostname a.long.server.name.or.annoying.IP.address
port 22
identityfile ~/.ssh/id_rsa