Github 似乎真的希望我们使用 HTTPS 协议来使用 Gist,例如,他们只在 Gist 页面上列出 HTTPS url - 例如https://gist.github.com/donatello/5834862
是否可以使用 SSH 协议克隆 Gist?
Github 似乎真的希望我们使用 HTTPS 协议来使用 Gist,例如,他们只在 Gist 页面上列出 HTTPS url - 例如https://gist.github.com/donatello/5834862
是否可以使用 SSH 协议克隆 Gist?
是的,有可能:
git clone git@github.com:5834862.git
当然,只需用您自己的 Gist ID 替换即可。
要点页面上的下拉菜单现在具有嵌入/共享/克隆 HTTPS/克隆 SSH 选项(但 SSH 选项仅在您登录时显示):
这表明不明显的技巧是省略用户名:
克隆 HTTPS:无论有无,都
https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
适用于我,.git
有无用户名:(
https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6
像往常一样在 github 上,规范浏览 URL 也适用于 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/
PS 一种方便的调试insteadOf
和pushInsteadOf
配置运行方式git remote -v
,它显示了 fetch/push 将使用的有效 URL。
https://help.github.com/articles/which-remote-url-should-i-use#ssh-readwrite---gitgithubspanspancom
git@..... 是 ssh 协议
当您复制克隆网址以获得要点时,它会向您显示 https 克隆网址
https://gist.github.com/5834862.git
更改https://
为git@
_ /****.git
_:****.git
所以在这种情况下
git clone git@gist.github.com:5834862.git
如果您愿意,您可以获取此脚本并将其放在您的$PATH
. 完成后,您可以执行以下操作:
gist.github.com
从使用中克隆任何要点HTTPS
(或者如果您已经克隆了要点,请继续下一步)git-change-url --to-ssh
现在,如果您的公钥已上传到您的 github 帐户(应该在此处列出),您应该能够通过 使用 gist SSH
,而无需输入您的 github 凭据。
比手动编辑 git 配置文件更不容易出错。
Ps:如果您发现脚本中的任何错误,或者有任何补充,请随时 fork :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 并不清楚。
为了让它工作,必须从路径中删除用户名,只留下哈希/数字。
有可能,试试这个:
git clone git@YOURSSHHOST:YOURGISTIDHERE.git