4

我在存储服务器上运行了一个 git 存储库。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启用并且端口设置为7999ssh怎么回事,当请求通过而不是发送时它找不到存储库http

4

2 回答 2

6

问题解决了。出于某种原因,存储库的 SSH-URL-suffix 与 HTTP-URL-suffix 不同。发现后,它奏效了。

编辑:
http-url stash 给user@server:7990/a/b/sandbox.git了我 is ,而 ssh-url stash 给了我 is user@server:7999/b/sandbox.git(其中 a 和 b 当然是占位符)。

正如评论中提到的,我应该将此添加到我的答案中。

于 2013-09-23T08:30:33.230 回答
1

配置 ssh 为你做这件事

除非需要明确地写出克隆 url(例如,克隆由参数化脚本执行),否则配置 ssh 通常更容易,以便它了解server含义,因此命令参数只是您通常期望的默认值。因此,例如在您的ssh 配置文件中放置:

Host server
  User user
  Port 7999

然后允许:

$ git clone server:/a/b/sandbox.git

通过这种方式,特别是如果 git 服务器上有多个存储库,这意味着您不需要记住更复杂/显式的语法来克隆存储库。

于 2013-09-23T08:46:25.610 回答