it-swarm.com.de

Gibt es eine Möglichkeit, Code mit SSH direkt auf GitHub zu bearbeiten?

Ich weiß, dass ich mich bei GitHub anmelden und Code direkt auf der Site bearbeiten kann, ohne das Repository zu klonen.

Gibt es eine Möglichkeit, etwas Ähnliches über SSH zu tun, damit ich Dateien nur mit einer Konsole bearbeiten kann?

Bitte nehmen Sie an, ich kann den Code nicht einfach auf meinen eigenen Server klonen.

2
Ovesh

Git stützt sich auf die Tatsache, dass Sie mit SSH Befehle auf einem Remote-Server ausführen können.

Wenn Sie einen Befehl wie git clone [email protected]: username/repo ausführen, führt Git hinter den Kulissen eine SSH-Verbindung zu github.com durch, authentifiziert sich als tom-Benutzer und führt dann aus der Ferne git upload-pack username/repo aus. Jetzt kann Ihr Client mit diesem Prozess auf dem Remote-Server kommunizieren, indem er einfach über die SSH-Verbindung liest und schreibt.

Die willkürliche Ausführung von Befehlen zuzulassen, ist natürlich unsicher, weshalb SSH die Möglichkeit einschließt, einzuschränken, welche Befehle ausgeführt werden können. In einem sehr einfachen Fall können Sie die Ausführung auf die in Git enthaltene Git-Shell beschränken. Dieses Skript überprüft lediglich den Befehl, den Sie ausführen möchten, und stellt sicher, dass es sich um einen der Befehle git upload-pack, git receive-pack oder git upload-archive handelt.

Die Syntax lautet also:

ssh [email protected]<route> <command> <arg>

Zum Beispiel:

$ ssh [email protected] "git-upload-pack username/repo.git"
$ ssh [email protected] "git-receive-pack username/repo.git"

Um Ihre Frage zu beantworten, können Sie den Code nicht über ssh bearbeiten, aber Sie können Ihre Änderungen hochladen, wenn Sie die richtige Syntax kennen.


Debuggen

Wenn Sie verfolgen möchten, welche Befehle an den Git-Server gesendet werden, folgen Sie Ihrem Git-Befehl mit GIT_TRACE = 1, d. H .:

GIT_TRACE=1 git clone [email protected]:username/repo.git

oder (Git 2.3.0+):

GIT_SSH_COMMAND="ssh -vv" git clone [email protected]:username/repo.git

Oder verwenden Sie für den Hardcode-Modus strace wie folgt:

strace -f -s200 -e execve git clone [email protected]:username/repo.git

Links

Siehe auch die folgenden Artikel:

7
kenorb

Nein, GitHub bietet keinen interaktiven SSH-Zugang.

 $ ssh [email protected] 
PTY-Zuweisungsanforderung auf Kanal 0 fehlgeschlagen
 Hallo Grawity! Sie haben sich erfolgreich authentifiziert, aber GitHub bietet keinen Shell-Zugriff.Verbindung zu github.com geschlossen.
4
grawity