如何通过SSH协议克隆Github Gist?
Github似乎真的希望我们使用HTTPS协议来使用Gist,例如,他们只在摘要页面上列出HTTPS url-例如 是否可以使用SSH协议克隆Gist?是的,可以:如何通过SSH协议克隆Github Gist?,git,github,gist,Git,Github,Gist,Github似乎真的希望我们使用HTTPS协议来使用Gist,例如,他们只在摘要页面上列出HTTPS url-例如 是否可以使用SSH协议克隆Gist?是的,可以: git clone git@github.com:5834862.git 当然,只需替换为您自己的Gist ID。 git@..... 是ssh协议吗 复制gist的克隆url时,它会显示https克隆url https://gist.github.com/5834862.git 将https://更改为git@并将/**.git
git clone git@github.com:5834862.git
当然,只需替换为您自己的Gist ID。
git@..... 是ssh协议吗
复制gist的克隆url时,它会显示https克隆url
https://gist.github.com/5834862.git
将https://
更改为git@
并将/**.git
更改为:**.git
所以在这种情况下
git克隆git@gist.github.com:5834862.git
如果需要,可以抓取脚本并将其放在$PATH
中的某个位置。完成后,您可以执行以下操作:
HTTPS
从gist.github.com
克隆任何gist(或者如果您已经克隆了gist,只需继续下一步)git将url更改为ssh
现在,如果您的公钥上传到您的github帐户(应该列出),您应该能够通过SSH
使用gist,而无需输入github凭据
与手动编辑git配置文件相比,更不容易出错
Ps:如果您在脚本中发现任何错误,或者需要添加任何内容,请随意fork:D将
https://
更改为ssh://git@
应该做到这一点,即改变
https://gist.github.com/donatello/5834862
到
所以git克隆ssh://git@gist.github.com/…
应该克隆项目(如果您已经在github上添加了SSH密钥)
在我个人看来,SSH还不清楚。gist页面上的下拉列表现在有嵌入/共享/克隆HTTPS/克隆SSH选项(但SSH选项仅在您登录时显示):
这表明不明显的技巧是忽略用户名:
- 克隆HTTPS:
https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
无论是否使用
,无论是否使用用户名,都适用于我:.git
(与github上的常规一样,git的规范浏览URL也适用)https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6
- 克隆SSH:
git@gist.github.com:b6f4a53fac485f75afb9150d03efb2f6.git
AKA
ssh://git@gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
我可以使用或不使用
,但不能使用用户名.git
我启用了github2fa,这让HTTPS很痛苦,所以我总是想要SSH; 以下
~/.gitconfig
对推送时的所有GIST进行翻译:
[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/
对于定期(非gist)回购:
另外,一种简便的调试
代替
和推送代替
配置的方法是运行git remote-v
,它显示了获取/推送将使用的有效URL。为了使其工作,必须从路径中删除用户名,只留下散列/数字。如果可能,请尝试以下方法:
git clone git@YOURSSHHOST:YOURGISTIDHERE.git
那是宋承宪,不是git://You 您很可能还希望在命令行上传递gist名称:git clonegit@github.com:5834862.git gist\u name您编辑了问题以适合您的答案吗?:D经典!现在,答案的问题是什么(42?;)我在一个防火墙后面,通过端口443(SSL)谈论SSH的技巧在gist.github.com上似乎不像在SSH.github.com上那样有效。https有什么问题吗?;)似乎每次使用协议时都需要在命令行上指定用户名和密码。对我来说,它可以与SSH配合使用(无需每次都指定用户名/密码)。此外,如果启用2-factor auth,HTTPS auth会变得更复杂。这与op要求的不完全一样,但仍然很有用!我不想克隆我现有的存储库,所以这个解决方案适合我。我将添加
nano$(git rev parse--git dir)/config
,作为直接手动修改条目的替代方法。因此答案将更加独立;)。否则,您首先必须下载一个脚本,并检查它是否会对您的系统和s.o.造成危害。目前,https可以使用用户名也可以不使用用户名,但SSH只能使用用户名,例如ssh://git@gist.github.com/5834862
。我发现我必须从SSH URI中删除gist.
,才能成功实现git克隆。如果我离开gisthub.com而不是使用github.com
,命令就会挂起。从2020年9月起,“嵌入/共享/克隆…”菜单不见了。奇怪的是,我仍然可以看到它,无论是登录的还是未登录的。菜单是可见的,但除非您登录,否则不会显示SSH的选项/URL。仅向匿名用户显示这些选项/选项卡:HTTPS、GitHub CLI、使用GH桌面打开、下载zip。显然已删除。菜单没有给我显示
[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/
git clone git@YOURSSHHOST:YOURGISTIDHERE.git