为什么当git clone ssh:// user @ server不能使用git clone user @ server?

时间:2013-04-16 22:13:05

标签: git ssh

我是git的新手。我已在具有SSH访问权限的服务器上创建了一个裸存储库。如果我尝试将其克隆到我的工作站上,我会得到两个不同的结果:

% git clone ssh://me@example.com:git/foo.git

Cloning into 'foo'...
ssh: example.com:git: no address associated with name
fatal: Could not read from remote repository.

但如果删除ssh://,则可以正常使用:

% git clone me@example.com:git/foo.git

根据Pro Git的书,这些应该是相同的。

是什么给出了?

1 个答案:

答案 0 :(得分:7)

  • 第一个命令git clone ssh://遵循标准SSH URI syntax,因此您需要提供绝对路径。

    请尝试此操作(假设用户me的主目录位于/home/me):

    git clone ssh://me@example.com/home/me/git/foo.git
    

    我猜这也应该有效:

    git clone ssh://me@example.com/~/git/foo.git
    
  • 第二种语法:git clone me@example.com:git/foo.git允许使用用户主目录中的相对路径。