it-swarm.com.de

Wie wird ein Github Gist über das SSH-Protokoll geklont?

Github scheint wirklich zu wollen, dass wir das HTTPS-Protokoll verwenden, um Gists zu verwenden. Beispielsweise listen sie nur die HTTPS-URL auf einer Gist-Seite auf, z. https://Gist.github.com/donatello/5834862

Ist es möglich, eine Gist mit dem SSH-Protokoll zu klonen?

54
donatello

Ja, es ist möglich:

git clone [email protected]:5834862.git

Einfach durch Ihre eigene Gist-ID ersetzen.

83
donatello

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

git @ ..... ist das ssh-Protokoll 

wenn Sie die Klon-URL für eine Gist kopieren, wird die https-Klon-URL angezeigt

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

https:// in [email protected] und /****.git in :****.git ändern

so in diesem Fall

git clone [email protected]:5834862.git

15
xero

Die Dropdown-Liste auf Gist-Seiten enthält jetzt die Optionen zum Einbinden/Teilen/Klonen von HTTPS/Klonen von SSH:
Gist dropdown
Bei dem nicht offensichtlichen Trick wird der Benutzername weggelassen:

  • HTTPS klonen:
    https://Gist.github.com/b6f4a53fac485f75afb9150d03efb2f6.git
    Funktioniert für mich mit oder ohne .git und mit oder ohne den Benutzernamen: https://Gist.github.com/cben/b6f4a53fac485f75afb9150d03efb2f6 (Wie bei github üblich, funktioniert die kanonische Browser-URL auch für git)

  • SSH klonen:
    [email protected]:b6f4a53fac485f75afb9150d03efb2f6.git
    AKA
    ssh://[email protected]/b6f4a53fac485f75afb9150d03efb2f6.git
    Funktioniert für mich mit oder ohne .git, aber nicht mit Benutzername.


Ich habe github 2FA aktiviert, was HTTPS schmerzhaft macht, also möchte ich immer SSH; Der folgende ~/.gitconfig führt die Übersetzung für alle Gists auf Push aus:

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

Und für regelmäßige (Nicht-Gist) Repos:

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

Wenn Sie möchten, können Sie dieses -Skript packen und irgendwo in Ihren $PATH einfügen. Sobald dies erledigt ist, können Sie Folgendes tun:

  1. Klonen Sie eine beliebige Gist aus Gist.github.com mit HTTPS (oder wenn Sie bereits eine geklonte Gist haben, fahren Sie einfach mit dem nächsten Schritt fort.)
  2. Führen Sie den Befehl an einer beliebigen Stelle im Git-Verzeichnisbaum von Gist aus
git-change-url --to-ssh

Vorausgesetzt, dass Ihr öffentlicher Schlüssel in Ihr Github-Konto hochgeladen wurde (er sollte hier aufgeführt sein), sollten Sie in der Lage sein, über SSH mit Gist zu arbeiten, ohne Ihre Github-Anmeldeinformationen eingeben zu müssen.

Weniger fehleranfällig als das manuelle Bearbeiten von git config-Dateien.

Ps: Wenn Sie Fehler im Skript finden oder Ergänzungen vornehmen möchten, können Sie gerne folgende Informationen eingeben: D

2
Sankalp

Damit es funktionieren kann, muss man den Benutzernamen aus dem Pfad entfernen und nur den Hash/die Zahlen übrig lassen.

0
cnst

Ändern Sie https:// in ssh://[email protected], wenn Sie den Trick ausführen möchten

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

zu

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

git clone ssh://[email protected]/... sollte das Projekt klonen (wenn Sie bereits SSH-Schlüssel auf Github hinzugefügt haben)

Meiner Meinung nach ist das offizielle Dokument über SSH unklar.

0
shintaroid

Es ist möglich, versuchen Sie dies:

git clone [email protected]:YOURGISTIDHERE.git
0
One Mad Geek