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

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

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

对的,这是可能的:

git clone git@github.com:5834862.git 

当然,换成你自己的Gist ID即可。

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

git @ …..是ssh协议

当您复制克隆url的要点时,会显示您的https克隆url

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

https:// /****.git git@/****.git :****.git

所以在这种情况下

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

要点页面上的下拉列表已经embedded/共享/克隆HTTPS /克隆SSH选项:
要点下拉
其中显示的非显而易见的技巧是省略用户名:

  • 克隆HTTPS:
    https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    适用于我有或没有.git ,并有或没有用户名: https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 (通常在github,规范浏览url工程

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


我启用github 2FA,这使得HTTPS痛苦,所以我总是希望SSH; 下面的~/.gitconfig在push上为所有的~/.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/ 

如果你愿意,你可以抓住这个脚本,把它放在你的$PATH某个地方。 一旦完成,您可以执行以下操作:

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

现在,假设你的公钥已经上传到你的github帐户(应该在这里列出),你应该可以通过SSH协同工作,而不必input你的github凭证。

手工编辑gitconfiguration文件比错误更容易。

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

改变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的官方文件不清楚。