【问题标题】:Difference between git@github.com:... and https://github.com/...?git@github.com:... 和 https://github.com/... 的区别?
【发布时间】:2016-11-17 15:44:28
【问题描述】:

我最近尝试构建一个项目,该项目具有声明为 Github 链接的各种依赖项。这些链接混合了指向我公司的公共 Github 存储库和私有 Github Enterprise 存储库的链接。

一些链接是格式的

https://github.com/project/repo.git

有些是格式的

git@github.com:project/repo.git

这些格式之间究竟有什么区别?哪种格式打算用于什么目的?

【问题讨论】:

  • git:https: 前缀指定方案;见en.wikipedia.org/wiki/Uniform_Resource_Locatorgit: 方案指示 Git 使用 Git 协议(内置于 Git 本身)。 https: 方案通过 libcurl 指示 Git 在 SSL 上使用 HTTP。 ssh: 前缀指示 Git 使用 ssh,user@host:pathssh://user@host/path 的简写。

标签: git github repository


【解决方案1】:

git 可以在多种不同的协议上运行

http(s) 喜欢 https://github.com/project/repo.git

它使用端口 443(或 80 用于 http),它允许读取和写入访问,身份验证密码(就像在 github 上它允许匿名读取访问但要求使用 paasword 进行写入)和防火墙友好(它不需要任何基础设施配置)。

ssh 喜欢 git@github.com:project/repo.git

它使用端口 22,它允许读写访问,需要 SSH 密钥进行身份验证,所以如果你给 git 你的公共 ssh 密钥,你的 ssh 协议将使用你的私钥进行 git 身份验证,所以你不需要提供用户名密码。

使用 SSH 时,每次使用 git push 命令时都不会要求您提供密码,因为 ssh 协议将使用您的私钥对存储库进行身份验证。

【讨论】:

  • 那么从公共 Github 存储库克隆时没有理由更喜欢 ssh 格式吗?我意识到使用 ssh 格式而不设置公共 ssh 密钥可能会在某些机器上导致一些问题,例如 git 在克隆之前会抛出一些额外的提示。这会使自动克隆依赖的过程崩溃。
【解决方案2】:

https://github.com/project/repo.git

是 HTTPS 网址

git@github.com:project/repo.git

是 SSH 网址

两者都可用于进行 git 文件传输,但 github 建议使用 HTTPS 而不是 SSH URL,因为这些 URL 可以在任何地方使用——即使您位于防火墙或代理后面。

请参阅https://help.github.com/articles/which-remote-url-should-i-use/ 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2021-05-03
    • 2021-04-26
    • 2020-07-25
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多