Как клонировать Github Gist по протоколу SSH?

Похоже, что Github действительно хочет, чтобы мы использовали протокол HTTPS для использования Gist, например, они указывают только URL-адрес HTTPS на странице Gist — например. https://gist.github.com/donatello/5834862

Можно ли клонировать Gist по протоколу SSH?


person donatello    schedule 02.08.2013    source источник
comment
что не так с https? ;)   -  person Nevik Rehnel    schedule 02.08.2013
comment
Кажется, мне нужно указывать имя пользователя и пароль в командной строке каждый раз, когда я использую протокол. У меня он отлично работает с SSH (не нужно каждый раз указывать имя пользователя/пароль)   -  person donatello    schedule 02.08.2013
comment
Кроме того, HTTPS-аутентификация усложняется, если вы включаете двухфакторную аутентификацию.   -  person Beni Cherniavsky-Paskin    schedule 13.10.2015


Ответы (7)


Да, это возможно:

git clone [email protected]:5834862.git

Просто замените, конечно, своим Gist ID.

person donatello    schedule 02.08.2013
comment
это SSH, а не git:// - person Nevik Rehnel; 02.08.2013
comment
Скорее всего, вы также захотите передать основное имя в командной строке: git clone [email protected]:5834862.git gist_name - person Mark Edington; 18.11.2013
comment
вы отредактировали свой вопрос, чтобы он соответствовал вашему ответу? :D классика! Теперь, что это за вопрос для ответа 42? ;) - person TimoSolo; 14.04.2014
comment
Я нахожусь за брандмауэром, и трюк с использованием SSH через порт 443 (SSL), похоже, не работает с gist.github.com так, как с ssh.github.com. - person jdsumsion; 08.08.2014

В раскрывающемся списке на основных страницах теперь есть параметры «Внедрить/Общий доступ/Клонировать HTTPS/Клонировать SSH» (но параметр SSH отображается только тогда, когда вы вошли в систему): gist dropdown
, которые показывают, что неочевидный трюк заключается в опущении имени пользователя:

  • Клонировать HTTPS:
    https://gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    У меня работает с .git или без него, а также с именем пользователя или без него: https://gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 (как обычно на github, канонический URL-адрес просмотра работает и для git)

  • Клонировать SSH:
    [email protected]:b6f4a53fac485f75afb9150d03efb2f6.git
    AKA
    ssh://[email protected]/b6f4a53fac485f75afb9150d03efb2f6.git
    У меня работает с .git или без него, но не работает с именем пользователя.


Я включил github 2FA, что делает HTTPS болезненным, поэтому я всегда хочу SSH; следующий ~/.gitconfig выполняет перевод для всех списков при нажатии:

[url "ssh://[email protected]/"]
    # 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://[email protected]/"]
    pushInsteadOf = https://github.com/
[url "ssh://[email protected]/"]
    pushInsteadOf = https://bitbucket.org/
[url "ssh://[email protected]/"]
    pushInsteadOf = https://gitlab.com/

P.S. Удобный простой способ отладки insteadOf и pushInsteadOf конфигураций запускается git remote -v, он показывает эффективные URL-адреса, которые будут использоваться для извлечения/передачи.

person Beni Cherniavsky-Paskin    schedule 22.11.2016
comment
Я обнаружил, что мне пришлось удалить gist. из SSH URI, чтобы git clone работало успешно. Если бы я оставил gist.github.com вместо использования github.com, команда просто зависла. - person binki; 24.03.2020
comment
По состоянию на сентябрь 2020 года меню «Встроить/Поделиться/Клонировать…» больше нет. - person Alastair Irvine; 04.09.2020
comment
Странно, я до сих пор вижу это, как авторизованным, так и нет. - person Beni Cherniavsky-Paskin; 06.09.2020
comment
меню видно, но параметры/URL-адреса для SSH не отображаются, если вы не вошли в систему. Отображает эти параметры/вкладки только для анонимных пользователей: HTTPS, GitHub CLI, Открыть с помощью GH Desktop, Загрузить zip . - person aneroid; 29.11.2020
comment
Видимо удалили. Меню не отображается у меня - person sehe; 21.05.2021
comment
@sehe посмотрите мои предыдущие параметры — они есть, но SSH отображается только тогда, когда вы вошли в систему. (В любом случае git clone не будет заботиться о том, вошли ли вы в браузер, только о том, настроены ли ваши SSH-ключи.) - person Beni Cherniavsky-Paskin; 23.05.2021
comment
@BeniCherniavsky-Paskin Не видно. Я проверил свою суть и вошел в систему. Я вижу две кнопки: «Сохранить с помощью Github Desktop» и «Загрузить как zip». - person rofrol; 01.06.2021
comment
Я вижу, что теперь в узком окне исчезает весь выпадающий список. Попробуйте развернуть окно браузера/уменьшить размер шрифта? - person Beni Cherniavsky-Paskin; 03.06.2021

https://help.github.com/articles/what-remote-url-should-i-use#ssh-readwrite---gitgithubspanspancom

git@..... это протокол ssh

когда вы копируете URL-адрес клона для сути, он показывает вам URL-адрес клона https

https://gist.github.com/5834862.git

изменить https:// на git@ и /****.git на :****.git

так что в этом случае

git clone [email protected]:5834862.git

person xero    schedule 02.08.2013

Если хотите, вы можете взять этот скрипт и поместить его куда-нибудь в свой $PATH. Как только это будет сделано, вы можете сделать следующее:

  1. Клонируйте любую суть из gist.github.com с помощью HTTPS (или, если у вас уже есть клонированная суть, просто перейдите к следующему шагу)
  2. В любом месте дерева каталогов git gist запустите команду
git-change-url --to-ssh

Теперь, при условии, что ваш открытый ключ загружен в вашу учетную запись github (он должен быть указан здесь), вы должны возможность работать с сутью через SSH без необходимости вводить свои учетные данные github.

Гораздо менее подвержен ошибкам, чем редактирование файлов конфигурации git вручную.

Ps: Если вы обнаружите какие-либо ошибки в скрипте или у вас есть какие-либо дополнения, не стесняйтесь делать форк :D

person Sankalp    schedule 27.04.2014
comment
Не совсем то, что просил оператор, но все же полезно! Я не хотел клонировать свой существующий репозиторий, поэтому это решение сработало для меня. Я бы добавил nano $(git rev-parse --git-dir)/config в качестве альтернативы для прямого изменения записей вручную. Так что ответ будет более самодостаточным ;). В противном случае вам сначала нужно скачать скрипт и проверить, не навредит ли он вашей системе и т.д. - person isaias-b; 22.04.2016

Изменение https:// на ssh://git@ должно помочь, то есть изменить

https://gist.github.com/donatello/5834862

to

ssh://[email protected]/donatello/5834862

поэтому git clone ssh://[email protected]/... следует клонировать проект (если вы уже добавили SSH-ключ на Github)

По моему личному мнению, официальный document ничего не говорит о SSH.

person shintaroid    schedule 08.08.2016
comment
В настоящее время https работает как с именем пользователя, так и без него, но SSH только без имени пользователя, например. ssh://[email protected]/5834862. - person Beni Cherniavsky-Paskin; 22.11.2016

Чтобы это работало, нужно удалить имя пользователя из пути, оставив только хеш/числа.

person cnst    schedule 14.01.2019

Это возможно, попробуйте это:

git clone git@YOURSSHHOST:YOURGISTIDHERE.git
person One Mad Geek    schedule 30.03.2019