Github似乎真的希望我们使用HTTPS协议来使用Gists,例如,他们只列出Gist页面上的HTTPS网址 - 例如https://gist.github.com/donatello/5834862
是否可以使用SSH协议克隆Gist?
答案 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选项:
显示非显而易见的技巧是省略用户名:
克隆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。调试insteadOf
和pushInsteadOf
配置的简便方法是运行git remote -v
,它显示了fetch / push将使用的有效网址。
答案 3 :(得分:2)
如果您愿意,可以抓取this脚本并将其放在$PATH
的某个位置。完成后,您可以执行以下操作:
gist.github.com
克隆HTTPS
中的任何要点(或者如果您已经克隆了要点,请继续执行下一步)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