79

Github 似乎真的希望我们使用 HTTPS 协议来使用 Gist,例如,他们只在 Gist 页面上列出 HTTPS url - 例如https://gist.github.com/donatello/5834862

是否可以使用 SSH 协议克隆 Gist?

4

7 回答 7

119

是的,有可能:

git clone git@github.com:5834862.git

当然,只需用您自己的 Gist ID 替换即可。

于 2013-08-02T14:16:36.300 回答
25

要点页面上的下拉菜单现在具有嵌入/共享/克隆 HTTPS/克隆 SSH 选项(但 SSH 选项仅在您登录时显示): 要点下拉菜单
这表明不明显的技巧是省略用户名

  • 克隆 HTTPS:无论有无,都
    https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    适用于我,.git有无用户名:( https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 像往常一样在 github 上,规范浏览 URL 也适用于 git)

  • 克隆 SSH:
    git@gist.github.com:b6f4a53fac485f75afb9150d03efb2f6.git
    AKA 对我有用或没有,但不适用于用户名。
    ssh://git@gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    .git


我启用了 github 2FA,这让 HTTPS 很痛苦,所以我一直想要 SSH;以下~/.gitconfig为所有推送的要点进行翻译:

[url "ssh://git@gist.github.com/"]
    # In case I just copy-pasted with username:
    # [only works for my (cben) gists, but those are the ones I can push]
    pushInsteadOf = https://gist.github.com/cben/
    # For gists cloned with official no-username URL:
    pushInsteadOf = https://gist.github.com/

对于常规(非要点)回购:

[url "ssh://git@github.com/"]
    pushInsteadOf = https://github.com/
[url "ssh://git@bitbucket.org/"]
    pushInsteadOf = https://bitbucket.org/
[url "ssh://git@gitlab.com/"]
    pushInsteadOf = https://gitlab.com/

PS 一种方便的调试insteadOfpushInsteadOf配置运行方式git remote -v,它显示了 fetch/push 将使用的有效 URL。

于 2016-11-22T13:48:43.890 回答
17

https://help.github.com/articles/which-remote-url-should-i-use#ssh-readwrite---gitgithubspanspancom

git@..... 是 ssh 协议

当您复制克隆网址以获得要点时,它会向您显示 https 克隆网址

https://gist.github.com/5834862.git

更改https://git@_ /****.git_:****.git

所以在这种情况下

git clone git@gist.github.com:5834862.git

于 2013-08-02T15:09:47.510 回答
2

如果您愿意,您可以获取脚本并将其放在您的$PATH. 完成后,您可以执行以下操作:

  1. gist.github.com从使用中克隆任何要点HTTPS(或者如果您已经克隆了要点,请继续下一步)
  2. 在 gist 的 git 目录树中的任何位置,运行命令
git-change-url --to-ssh

现在,如果您的公钥已上传到您的 github 帐户(应该在此处列出),您应该能够通过 使用 gist SSH,而无需输入您的 github 凭据。

比手动编辑 git 配置文件更不容易出错。

Ps:如果您发现脚本中的任何错误,或者有任何补充,请随时 fork :D

于 2014-04-27T22:38:31.960 回答
2

更改https://ssh://git@应该做的伎俩,即更改

https://gist.github.com/donatello/5834862

ssh://git@gist.github.com/donatello/5834862

所以git clone ssh://git@gist.github.com/...应该克隆项目(如果你已经在 Github 上添加了 SSH 密钥)

在我个人看来,官方文档对 SSH 并不清楚。

于 2016-08-08T02:24:32.443 回答
1

为了让它工作,必须从路径中删除用户名,只留下哈希/数字。

于 2019-01-14T08:28:54.473 回答
0

有可能,试试这个:

git clone git@YOURSSHHOST:YOURGISTIDHERE.git
于 2019-03-30T13:27:56.437 回答