是否可以从 git remote 的 URL 中删除“ssh://”?

igo*_*s07 9 ssh git

我习惯于创建一些手动制作的存储库来将代码推送到我的宠物服务器或在我的公司内部共享代码。我使用 URLssh://user@ip/folder.git作为远程添加到我的工作区。

我想知道像 GitHub 这样的服务如何在没有协议规范的情况下设置存储库 URL,比如git@github.com:igorsantos07/Restler.git.

slm*_*slm 6

如果您查看此处可访问的 Git 书:4.1 服务器上的 Git - 协议,其中提到了 Git 将接受的各种协议格式。

摘抄

Git 最常见的传输协议可能是 SSH。这是因为在大多数地方已经设置了对服务器的 SSH 访问——如果没有,这很容易做到。SSH 也是唯一可以轻松读取和写入的基于网络的协议。其他两种网络协议(HTTP 和 Git)通常是只读的,因此即使您将它们用于未清洗的大众,您仍然需要 SSH 来执行您自己的写入命令。SSH 也是一种经过身份验证的网络协议;并且因为它无处不在,所以通常很容易设置和使用。

要通过 SSH 克隆 Git 存储库,您可以指定 ssh:// URL,如下所示:

  $ git clone ssh://user@server/project.git
Run Code Online (Sandbox Code Playgroud)

或者,您可以对 SSH 协议使用更短的类似 scp 的语法:

  $ git clone user@server:project.git
Run Code Online (Sandbox Code Playgroud)

您也可以不指定用户,Git 假定您当前登录的用户身份。

像 GitHub 这样的服务通过使用 HTTP 来包装访问,然后从 HTTP 服务器的后端发出正确的协议,从而在访问存储库方面发挥其他技巧。这通常作为某种反向代理完成。您可以使用为您提供其中一些功能的产品称为 Gitolite(TOCIntro)以及Gitorious