我有一个在存储服务器上运行的git-repository。通过http
克隆存储库工作正常
git clone http://user@server:7990/a/b/sandbox.git
出于一些奇怪的原因,当我用http
切换ssh
并使用端口时,它会给我
git clone ssh://user@server:7999/a/b/sandbox.git
Cloning into sandbox...
fatal: remote error: Remote URL invalid
A repository could not be determined from the remote URL. Please confirm the
clone URL in Stash and try again. URL suffix: '/scm/ct/sandbox.git'
fatal: The remote end hung up unexpectedly
服务器已启用ssh
,端口设置为7999
。怎么来的,当通过ssh
而不是http
发送请求时它无法找到存储库?
答案 0 :(得分:6)
问题解决了。出于某种原因,存储库的SSH-URL后缀与HTTP-URL后缀不同。在发现之后,它起作用了。
编辑:
http-url存储区给了我user@server:7990/a/b/sandbox.git
,而ssh-url存储区给了我user@server:7999/b/sandbox.git
(其中a和b当然是占位符)。
正如评论中提到的那样,我应该将其添加到我的答案中。
答案 1 :(得分:1)
除非明确写出克隆url(例如克隆是由参数化脚本执行),否则通常更容易配置ssh以便它理解server
的含义,因此命令参数只是默认值通常会期待。例如,在你的ssh config file put:
Host server
User user
Port 7999
然后允许:
$ git clone server:/a/b/sandbox.git
通过这种方式,特别是如果git服务器上有多个存储库,则意味着您不需要记住克隆存储库的更复杂/显式语法。