如何通过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/b6f4a53fac485f75afb9150d03efb2f6
:https://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
某个地方。 一旦完成,您可以执行以下操作:
- 使用
HTTPS
从gist.github.com
克隆任何要点(或者如果您已经克隆了要点,则继续下一步) - 在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的官方文件不清楚。