Git克隆仅适用于ssh:// git @ ..而不适用于git @


12

知道为什么GIT回购仅在使用时有效ssh://git@server.com/repo.git,而在使用时却无效git@server.com/repo.git吗?

这是其他人设置的服务器,所以不知道它是如何设置的,但是我只能在BitBucket或GitHub上使用git@server.com/repo.git它,并且可以工作并使用SSH协议克隆存储库。知道为什么该服务器只能在使用时工作ssh://git@server.com/repo.git吗?

所以我需要ssh://在前面添加。


服务器是否使用备用SSH端口?赞ssh://git@server.com:2222/
7ochem '18

不,这是22 ssh://git@server.com/repo.git的作品,而git@server.com/repo.git不会。:port无论如何,我都不会添加。当我尝试没有ssh://我得到fatal: repository 'git@server.com/something/repo.git' does not exist。有了ssh://git@server.com/something/repo.git它的作品。
丹尼尔斯

某种配置问题(可能是防火墙?用户名问题?)-我在机构中的设置也遇到了类似的问题。但是,通过https的访问有效-因此解决方案是使用此线程的重写规则:stackoverflow.com/questions/15589682/…–
DetlevCM

Answers:


32

您使用的语法不正确。

当您删除scheme://前缀时,git不再以URL样式解释您的地址,而是以rcp / scp样式解释。但是对于rcp / scp样式地址,必须使用冒号:将路径与user @ host分开(指定不支持端口)。例如:

git clone daniels@server.com:repo.git

git clone git@bitbucket.com:daniels/example.git

没有冒号,git只会将地址解释为本地路径。

(您可以在git clonegit fetch手册页中查看更多详细信息。)


哈哈,谜团解决了。你是对的。谢谢。
丹尼尔斯

我正在使用BitBucket服务器(以前的Stash,即您安装在服务器上的那台服务器,而不是云版本),只是从那里复制并粘贴了GIT命令。由于某些原因,他们不会添加那些丢失的东西:
丹尼尔斯(Daniels)'18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.