web-dev-qa-db-fra.com

Comment cloner un Github Gist via le protocole SSH?

Github semble vraiment vouloir que nous utilisions le protocole HTTPS pour utiliser Gists. Par exemple, ils ne répertorient que l’URL HTTPS sur une page Gist - par exemple. https://Gist.github.com/donatello/5834862

Est-il possible de cloner un Gist en utilisant le protocole SSH?

54
donatello

Oui c'est possible:

git clone [email protected]:5834862.git

Remplacez-le simplement par votre propre identifiant Gist.

83
donatello

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

git @ ..... est le protocole ssh 

lorsque vous copiez l'URL de clone d'un Gist, il vous montre l'URL de clone https

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

changez https:// en git@ et /****.git en :****.git

alors dans ce cas

git clone [email protected]:5834862.git

15
xero

La liste déroulante sur les pages Gist a maintenant les options Embed/Share/Clone HTTPS/Clone SSH:
Gist dropdown
qui montre que le truc non évident est d’omettre le nom d’utilisateur:

  • Clone HTTPS:
    https://Gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    Fonctionne pour moi avec ou sans .git, et avec ou sans le nom d'utilisateur: https://Gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 (Comme d'habitude sur github, l'URL de navigation canonique fonctionne également pour git)

  • Clone SSH:
    [email protected]:b6f4a53fac485f75afb9150d03efb2f6.git
    ALIAS
    ssh://[email protected]/b6f4a53fac485f75afb9150d03efb2f6.git
    Fonctionne pour moi avec ou sans .git, mais ne fonctionne pas avec nom d'utilisateur.


J'ai activé github 2FA, ce qui rend HTTPS douloureux, donc je veux toujours SSH; Le ~/.gitconfig suivant fait la traduction pour toutes les critiques sur Push:

[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/

Et pour les pensions ordinaires (non-Gist):

[url "ssh://[email protected]/"]
    pushInsteadOf = https://github.com/
[url "ssh://[email protected]/"]
    pushInsteadOf = https://bitbucket.org/
[url "ssh://[email protected]/"]
    pushInsteadOf = https://gitlab.com/
12

Si vous le souhaitez, vous pouvez saisir this script et le placer quelque part dans votre $PATH. Une fois que cela est fait, vous pouvez faire ce qui suit:

  1. Clonez tout Gist à partir de Gist.github.com en utilisant HTTPS (ou si vous avez déjà un Gist déjà cloné, passez à l'étape suivante)
  2. N'importe où dans l'arborescence des répertoires git de Gist, exécutez la commande
git-change-url --to-ssh

Maintenant, à condition que votre clé publique soit téléchargée sur votre compte github (elle devrait être répertoriée ici ), vous devriez pouvoir travailler avec Gist via SSH, sans avoir à saisir vos informations d'identification github.

Beaucoup moins sujet aux erreurs que l'édition manuelle des fichiers de configuration git.

Ps: Si vous trouvez des bugs dans le script, ou avez des ajouts à faire, n'hésitez pas à forker: D

2
Sankalp

Pour que cela fonctionne, il faut supprimer le nom d'utilisateur du chemin, en ne laissant que les chiffres et le hash.

0
cnst

Changer https:// en ssh://git@ devrait faire l'affaire, changer

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

à

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

alors git clone ssh://[email protected]/... devrait cloner le projet (si vous avez déjà ajouté la clé SSH sur Github)

A mon avis, le document officiel n'est pas clair sur SSH.

0
shintaroid

C'est possible, essayez ceci:

git clone git@YOURSSHHOST:YOURGISTIDHERE.git
0
One Mad Geek