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?
Oui c'est possible:
git clone [email protected]:5834862.git
Remplacez-le simplement par votre propre identifiant Gist.
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
La liste déroulante sur les pages Gist a maintenant les options Embed/Share/Clone HTTPS/Clone SSH:
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
ALIASssh://[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/
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:
Gist.github.com
en utilisant HTTPS
(ou si vous avez déjà un Gist déjà cloné, passez à l'étape suivante)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
Pour que cela fonctionne, il faut supprimer le nom d'utilisateur du chemin, en ne laissant que les chiffres et le hash.
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.
C'est possible, essayez ceci:
git clone git@YOURSSHHOST:YOURGISTIDHERE.git