Git-Commit über SSH erkennt kein Remote-Repository

1399
MeesterTeem

Ich habe 2 Maschinen, Client und Server. Ich möchte Git-Repositories mit Remote-Push vom Client an den Server senden. Ich habe diese Befehle in dieser Reihenfolge auf dem Server ausgeführt:

mkdir /mnt && cd /mnt mkdir test.git && cd test.git sudo git init --bare 

Ich habe diese Befehle auf dem Client ausgeführt:

mkdir /mnt && cd /mnt mkdir test.git && cd test.git sudo git init sudo git remote add testy ssh://user@server/mnt/test.git sudo vim testing.txt sudo git add testing.txt sudo git commit -m "testing" sudo git push testy master 

Dies erzeugt den Fehler auf dem Clientcomputer: fatal: '/mnt/test.git' does not appear to be a git repository. fatal: The remote end hung up unexpectedly.

Es gibt mehrere ähnliche Fragen, aber keine davon betrifft mein Problem. Ich habe ihre Lösungen wörtlich ohne Erfolg ausprobiert. Dies ist kein Duplikat, da diese Fragen das Problem nicht lösen. Anregungen zur Behebung dieser Probleme?

2
Sie fehlen `:` divisor zwischen Host und Pfad in sudo git remote addy testy ssh: // user @ server: / mnt / test.git` Jakuje vor 9 Jahren 0
Sie verwenden Sudo völlig übermäßig und brechen effektiv alle Berechtigungen (und merken es nicht, weil Sie sie überschreiben). Sie sollten * nur * sudo für Befehle verwenden, für die spezielle Berechtigungen erforderlich sind (z. B. Erstellen des Verzeichnisses `/ mnt / test.git`); In Ihrem Beispiel ist jede einzelne Verwendung von `sudo` unnötig und daher höchstwahrscheinlich schlecht. umläute vor 9 Jahren 0
Wenn ich einen Doppelpunkt so setze, dass ich sudo git remote addy testy ssh: // user @ server: / mnt / test.git `habe, erhalte ich die Fehlermeldung:` hostname server :: kann nicht aufgelöst werden `. MeesterTeem vor 9 Jahren 0

1 Antwort auf die Frage

1
l0b0

Ich würde vermuten, user@serverhat keinen Lese- / Schreib- / Ausführungszugriff auf /mnt/test.git:

$ sudo sh -c 'cd $(mktemp -d) && git init --bare' Initialized empty Git repository in /tmp/tmp.TNLcXTZQcN/ $ cd $(mktemp -d) $ git remote add /tmp/tmp.TNLcXTZQcN fatal: Not a git repository (or any parent up to mount point /tmp) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 
Ich habe "chown" verwendet, um dem Benutzer Zugriff auf das Verzeichnis zu geben. Jetzt bekomme ich: `fatal: kein Git-Repository (oder eines der übergeordneten Verzeichnisse): .git` Weitere Vorschläge? MeesterTeem vor 9 Jahren 0
Führen Sie chown rekursiv aus, um sicherzustellen, dass der Benutzer alle erforderlichen Dateien lesen / schreiben kann: `sudo chown -R user / mnt / test.git`. umläute vor 9 Jahren 0
Ich habe endlich alles bekommen, wo der Push akzeptiert wurde - aber die Datei, die ich als Test hinzugefügt habe, scheint nicht gesendet zu werden. Ist dies wahrscheinlich noch ein Problem mit der Schreibberechtigung? MeesterTeem vor 9 Jahren 0
@MeesterTeem Ein nacktes Repository hat definitionsgemäß keine Kopien der Dateien ausgecheckt, wenn Sie das meinen. l0b0 vor 9 Jahren 0
Es scheint also ein großes Problem zu sein ... Ein nacktes Repo-Dokument checkt keine Dateien aus, so dass Sie keine Inhalte darauf verschieben können. Bei einem nicht nackten Repo ist der Master-Zweig ausgecheckt, sodass Sie ihn auch nicht verschieben können! Was ist sogar der Sinn davon? Und warum verwendet jede Anleitung zum Einrichten der Remote-Datei-Bereitstellung eine blanke, wenn sie keine Dateien erhalten kann? MeesterTeem vor 9 Jahren 0
Nein, Sie * können * Inhalte dazu verschieben. Und Sie können die Dateien daraus erhalten, indem Sie in ein nicht-nacktes Repository klonen. Es wird einfach nicht auf dem Server ausgecheckt. Der Punkt davon ist zum Beispiel für das Hosting. l0b0 vor 9 Jahren 0