Warum dient Git-Daemon mein Repository nicht?
-
22-09-2019 - |
Frage
Ich habe arrangiert .git
in einem Verzeichnis auf meiner lokalen Maschine. Ich renne dann:
mkdir a cd a git init git daemon
Wenn ich versuche, das Repository einzuklonen a
, Ich bekomme den folgenden Fehler:
mkdir b cd b git clone git://127.0.0.1 Initialized empty Git repository in /b/127.0.0.1/.git/ fatal: The remote end hung up unexpectedly
Wie kann ich mein Repository über das Git -Protokoll klonen?
Lösung
Sie müssen lassen git-daemon
Wissen Sie, dass es Ihr Repository exportieren kann:
$ git init --bare /tmp/my-repo.git Initialized empty Git repository in /tmp/my-repo.git/ $ git daemon --verbose --base-path=/tmp --export-all /tmp/my-repo.git & $ git clone git://`hostname`/my-repo.git Initialized empty Git repository in /tmp/my-repo/.git/ warning: You appear to have cloned an empty repository.
Ein weitaus besserer Weg ist es, es aus zu laufen xinetd
. Erstellen und optimieren /etc/xinetd.d/git
in den Bereichen von
# description: The git server offers access to git repositories
service git
{
disable = no
type = UNLISTED
port = 9418
socket_type = stream
wait = no
user = nobody
server = /usr/local/bin/git
server_args = daemon --inetd --export-all --base-path=/pub/scm
log_on_failure += USERID
}
Vergiss es nicht sudo killall -HUP xinetd
. Nun alle Git -Repositories darunter /pub/scm
wird jedem zur Verfügung stehen, der fragt.
Andere Tipps
Sie müssen entweder eine leere Datei mit dem Namen git-daemon-export-ok
in das Repository oder starten git daemon
mit dem --export-all
Möglichkeit.
Zitat aus dem Git-Daemon Mann Seite:
Es wird überprüft, dass das Verzeichnis die magische Datei "Git-Daemon-export-ook" enthält, und es wird sich weigert, ein Git ). Wenn Sie einige Verzeichnispfade als Git -Daemon -Argumente bestehen, können Sie die Angebote auf einen Whitelisten, der aus diesen besteht, weiter einschränken.