通过 SSH 从 Stash 克隆 git-repository



我有一个在存储服务器上运行的git存储库。通过http克隆存储库工作正常

git clone http://user@server:7990/a/b/sandbox.git

出于某种奇怪的原因,当我用ssh切换http并用它切换端口时,它给了我

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发送时找不到存储库?

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

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

正如评论中提到的,我应该在我的答案中加上这一点。

配置 ssh 为你做这件事

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

Host server
  User user
  Port 7999

然后允许:

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

这样,特别是如果 git 服务器上有多个存储库,这意味着您无需记住更复杂/明确的语法即可克隆存储库。

最新更新