如何通过SSH协议克隆Github Gist?

时间:2013-08-02 14:16:36

标签: git github gist

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

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

7 个答案:

答案 0 :(得分:86)

是的,有可能:

git clone git@github.com:5834862.git

当然只需用你自己的Gist ID替换。

答案 1 :(得分:15)

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

git @ .....是ssh协议

当您复制gist的克隆URL时,它会显示https clone url

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

https://更改为git@,将/****.git更改为:****.git

所以在这种情况下

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

答案 2 :(得分:13)

gist页面的下拉列表现在具有嵌入/共享/克隆HTTPS /克隆SSH选项:
gist dropdown
显示非显而易见的技巧是省略用户名

  • 克隆HTTPS:
    https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    无论有没有.git,有或没有用户名,我都可以使用: https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 (像往常一样,在github上,规范浏览网址也适用于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/

P.S。调试insteadOfpushInsteadOf配置的简便方法是运行git remote -v,它显示了fetch / push将使用的有效网址。

答案 3 :(得分:2)

如果您愿意,可以抓取this脚本并将其放在$PATH的某个位置。完成后,您可以执行以下操作:

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

    现在,只要您的公钥上传到您的github帐户(应列出here),您就可以通过SSH使用gist,而无需输入您的github凭据

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

    Ps:如果您在脚本中发现任何错误,或者有任何新增内容,请随意分叉:D

答案 4 :(得分:1)

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密钥)

在我个人看来,official document不清楚SSH。

答案 5 :(得分:1)

要使其正常工作,必须从路径中删除用户名,而仅保留哈希/数字。

答案 6 :(得分:0)

可能的,试试这个:

git clone git@YOURSSHHOST:YOURGISTIDHERE.git