Wie kann ich den anonymen drücken, um ein git repository über http?
Ich nicht finden können, ein Beispiel hier:
http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html
Ist es möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Füge dies in deine httpd.conf (Bei /srv/git enthält Ihre repos)
Dann stellen Sie sicher, dass apache schreiben können, um Ihr repository-Verzeichnis (von innen repo laufen, wo http-apache-Benutzer)
In das repository aus, das Sie erstellt haben auf dem server öffnen .git/config und fügen Sie die folgenden
und schließlich in das repository root ausführen
alternativ, wenn Sie möchten, die Dateien auf dem server verfügbar (für eine Website oder was auch immer), dann ignorieren Sie das obige Kommando und Bearbeiten .git/config mit diesem
und führen Sie dieses auf dem server, wenn Sie aktualisieren möchten, die dir (es muss einen besseren Weg geben, so lasst es mich bitte wissen)
[http] receivepack = true
funktioniert bei mirAnonyme push-und browsing-Funktionen mit der git-http-backend und gitweb
Beachten Sie, dass der DAV ist deutlich langsamer als das neue "smart-http" unterstützt, da git 1.6.6. Die neue Methode ermöglicht es, die ganze Packung zu übertragen auf einmal, und nicht als einzelne Dateien.
Das setup unten eliminiert die Notwendigkeit für benutzerdefinierte config in jedem repo (http.receivepack), oder die Notwendigkeit für hard-resets. Einfach machen jede neue re[po mit
Können Sie auch gitweb zu bieten browable URLs an der gleichen Stelle.
Hinweis: Da der Zugriff kontrolliert wird, die von apache können Sie jede beliebige Auth Anforderungen (htaccess oder ldap, etc), um das setup für jedes repository.
Einfach eine neue git_support.conf-Datei, und fügen Sie es in apache (add include-Anweisung in httpd.conf)
Ist das Ergebnis der Fähigkeit, push/pull:
Und Sie durchsuchen können diese änderungen online..
Quelle:
http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
Linie. Ich verbrachte eine Stunde googeln, warum bekomme ich 403, wenn ich alles konfiguriert anderes.Nur nicht, stellen Sie keine
AuthType
in der Apache-config (also keineLocationMatch
oderLocation
Elemente).Wenn Sie nicht haben, AuthType , das bedeutet, dass dein Apache übergeben Sie einfach Ihren git-request an das cgi-Programm
git-http-backend
.Also keine Authentifizierung stattfinden wird, in diesem Fall: anonymous-push möglich sein wird.
AuthType
aber ich bin noch immer diese Meldungerror: Cannot access URL http://localhost/git/test/, return code 22
git clone von diesem Ort aus fein gearbeitet<LocationMatch >
Elemente mit IhrenOptions +ExecCGI
in Ihnen, aber mit nichts sonst (mit Authentifizierung) verwenden, und sollte diese Arbeit. Der Schlüssel ist, um sicherzustellen, dass die CGI ausgeführt wird, andernfalls setzt auf WEBDAV, das löst den Fehler 22.