kann keine Git-Repos über http klonen; info/refs nicht gefunden

Lesezeit: 2 Minuten

Benutzer-Avatar
epl

Ich versuche, ein Git-Repository für den schreibgeschützten Zugriff über http verfügbar zu machen.

Ich mache es auf die alte Art, weil git-http-backend ist auf meinem Hostsystem nicht verfügbar. Das heißt, ich lege das Bare-Repository einfach an einem Ort ab, auf den über http zugegriffen werden kann.

Ich habe das Bare-Repository erfolgreich auf dem Host mit erstellt git clone --bare <some-remote-location>.

Wenn ich jetzt mit git auf den neuen Klon zeige git clone http://my.host.name/locationmeldet eine Meldung repository not found.

Wenn ich den Netzwerkverkehr erfasse, sehe ich, dass Git versucht, darauf zuzugreifen http://my.host.name/location/info/refs. Es wäre zu erwarten, dass dies fehlschlägt, da es keine gibt info/refs Pfad im Repository. Vielmehr gibt es info und refs Verzeichnisse direkt unter dem Repository-Root.

Offensichtlich ist das geklonte Bare-Repository nicht wie vom Client erwartet strukturiert. Weiß jemand woran das liegen könnte?

Sie müssen rennen git update-server-info auf dem Server, um die Dateien zu generieren, die für das Funktionieren des „dummen Protokolls“ erforderlich sind.

  • Außerdem müssen Sie dies in einem Bare-Repository tun

    – Luc

    15. Januar 2016 um 13:47 Uhr

Benutzer-Avatar
Anshul Goyal

Probieren Sie die genannten Schritte aus hier auf git-scm für das http/s-Protokoll.

Grundsätzlich, nachdem Sie die git clone --bare <path-to-repository>du musst laufen mv hooks/post-update.sample hooks/post-update mit Ihrem Bare-Repository und dann a git update-server-info einmal und dann sollten Sie in der Lage sein, das Repo zu klonen.

Ich hatte dieses Problem, wenn die Fernbedienung auf einem Git-Repository 1.7.X läuft und der Git-Client 1.8.X ist; Ich habe es bewiesen, indem ich meinen Client auf 1.7.X heruntergestuft habe – dadurch wurde das Problem behoben. Stellen Sie also sicher, dass Git auf “Client”- und “Server”-Seite dieselbe Version hat. Der Befehl, den ich ausführte, war git clone .

Denken Sie auch daran, zu überprüfen, ob die erforderlichen Module auf Apache aktiviert sind. Dies sind die erforderlichen Module für Git über HTTP:

  • mod_alias
  • mod_cgi
  • mod_env

Ich hatte den gleichen Fehler beim Versuch, a gitlab-Projekt weil ich einen falschen Weg eingeschlagen habe!
Ich nahm die SSH Weg statt der HTTP Weg. (+ nicht vergessen .git)

git clone *HTTP_path.git*

1157980cookie-checkkann keine Git-Repos über http klonen; info/refs nicht gefunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy