请原谅我的无知,我是新手对Git不熟悉,在哪里寻找答案不太确定,但是在以下URL中(它指向我的mediatemple服务器上的git存储库),'example.com'后面的冒号有什么用途?
git remote add repo_name ssh://serveradmin%example.com@example.com:/home/45678/domains/git.example.com/html/example.git
请原谅我的无知,我是新手对Git不熟悉,在哪里寻找答案不太确定,但是在以下URL中(它指向我的mediatemple服务器上的git存储库),'example.com'后面的冒号有什么用途?
git remote add repo_name ssh://serveradmin%example.com@example.com:/home/45678/domains/git.example.com/html/example.git
这个语法实际上是错误的,但它有点像在git URL中可以使用的scp
风格语法,它将主机名与该主机上的路径分开。您可以在git clone文档中找到指定git URL的选项列表。在您的情况下,您可能想要使用以下其中之一:
serveradmin%example.com@example.com:/home/45678/domains/git.example.com/html/example.git
... 或者:
ssh://serveradmin%example.com@example.com/home/45678/domains/git.example.com/html/example.git
在任何情况下,用户名都是serveradmin%example.com
,主机名是example.com
,该主机上的路径为/home/45678/domains/git.example.com/html/example.git
。ssh://
开头,而你的有。在 不带 ssh://
的版本中,只允许使用 :
。关于可以用来引用 git 存储库的 URL 的唯一文档是我在答案中链接到的 git clone
手册。scp
是一个命令行工具,用于通过 SSH 复制文件,需要您指定远程系统上文件的位置为 user@host:filename
。由于 scp
被广泛使用并为人所熟知,因此 git 允许您使用它来指定存储库以及严格的 URL 版本。 - Mark Longair如此处所述,它将主机名(服务器)与路径(到存储库)分开。
<scheme name>: <hierarchical part> [? <query>] [# <fragment>]
组成,则方案名称在哪里?我认为 ssh: 可能是此处的 scheme 名称。通常情况下,主机名与路径之间由斜杠分隔,对吧?我习惯于在端口号前看到一个冒号,就像 @harpo 上面提到的那样,但是独立的冒号对我来说是新的。您告诉我这不是 git 的东西,而是 URI 的标准元素? - David Rhoden冒号是一种符号,它告诉Git紧随其后的字符串定义了您希望与之交互的存储库。
编辑:发现得好
正如我们所看到的远程添加是如下所示:
git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--mirror] <name> <url>
而且你的例子是:
git remote add repo_name ssh://serveradmin%example.com@example.com:/home/45678/domains/git.example.com/html/example.git
其中'name'是'repo_name'
而URL则是一个很长的字符串
ssh://serveradmin%example.com@example.com:/home/45678/domains/git.example.com/html/example.git
当我们看到它在开头定义了ssh协议时,这一点变得更加明显。
在URL中,您可以定义冒号而不需要端口值,并且该协议的默认端口通常用作端口号,这似乎就是这里发生的情况。
因此,问题的标记和Harpo评论的标记
ssh user@host:path
语法(其中路径是绝对或相对于您的主目录)。 - tc.