Как клонировать GitHub Gist по протоколу SSH?
5 ответов
Да, возможно:
git clone git@github.com:5834862.git
просто замените свой собственный идентификатор Gist, конечно.
https://help.github.com/articles/which-remote-url-should-i-use#ssh-readwrite---gitgithubspanspancom
git@..... является ли протокол ssh
когда вы копируете url-адрес клона для gist, он показывает вам url-адрес клона https
https://gist.github.com/5834862.git
изменить https://
to git@
и /****.git
to :****.git
в этом случае
git clone git@gist.github.com:5834862.git
выпадающее меню на страницах gist теперь имеет опции Embed/Share / Clone HTTPS / Clone 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
Он жеssh://git@gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
Работает для меня с или без.git
, но не работает с именем пользователя.
Я включил github 2FA, что делает HTTPS болезненным, поэтому я всегда хочу SSH;
следующее ~/.gitconfig
делает перевод для всех gists на push:
[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) РЕПО:
[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/
если вы хотите, вы можете захватить этой скрипт и поместите его где-нибудь в свой $PATH
. Как только это будет сделано, вы можете сделать следующее:
- клонировать любой gist из
gist.github.com
используяHTTPS
(или если у вас уже есть клонированная суть, просто перейдите к следующему шагу) - в любом месте дерева каталогов git gist, выполните команду
git-change-url --to-ssh
теперь, при условии, что ваш открытый ключ загружен в вашу учетную запись github (он должен быть указан здесь) вы должны иметь возможность работать с gist через SSH
, без необходимости вводить учетные данные GitHub.
гораздо менее подвержены ошибкам, чем редактирование файлов конфигурации git вручную.
Ps: Если вы нашли какие-либо ошибки в скрипте или у вас есть какие-либо дополнения, не стесняйтесь fork :D
изменить https://
to ssh://git@
должен сделать трюк, то есть изменить
https://gist.github.com/donatello/5834862
to
ssh://git@gist.github.com/donatello/5834862
так git clone ssh://git@gist.github.com/...
должен клонировать проект (если вы уже добавили SSH-ключ на Github)
по моему личному мнению,официальный документ неясно о SSH.