/ / Kann nicht ├╝ber HTTP / HTTPS aus dem Git-Repository ziehen, kann aber mit SSH - Debian, Git, Webserver, Amazon-Web-Services, Nginx

Kann nicht ├╝ber HTTP / HTTPS aus dem Git-Repository ziehen, kann aber mit SSH - Debian, Git, Webserver, Amazon-Web-Services, Nginx

Ich habe ein Debian, auf dem Nginx l├Ąuft git.example.com die ich benutze, um Git-Repositories zu speichern.

Ich kann ├╝ber SSH ziehen / schieben / klonen, indem ich laufe git clone keeyan@example.com/git/my_repo. (git ist ein Symlink in meinem Homeverzeichnis, der auf zeigt /mnt/primary_storage/git)

Wenn ich jedoch mit HTTP (S) klone / ziehe, erhalte ich den folgenden Fehler:

fatal: http://git.example.com/my_repo.git/info/refs not valid: is this a git repository?

Ich erhalte diesen Fehler unabh├Ąngig davon, ob ich ein echtes Repository klone

Der relevante Teil der Nginx-Konfiguration ist:

server {
listen       80;
server_name  git.example.com;

root /mnt/primary_storage/git;


location ~ (/.*) {
auth_basic "Login";
auth_basic_user_file /mnt/primary_storage/.htpasswd;
include       fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param SCRIPT_FILENAME     /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT    /mnt/primary_storage/git;
fastcgi_param PATH_INFO           $1;
fastcgi_pass localhost:9000;
}
}

Das nervige ist, dass ich genau das gleiche hatteSetup l├Ąuft auf einem anderen Server mit Ubuntu und es hat gut funktioniert. Ich wei├č also nicht, was das verursacht. Abgesehen von diesem einen Problem l├Ąuft alles auf dem Server einwandfrei.

Ja, es gibt ein paar ├Ąhnliche Fragenauf StackExchange-Sites hilft mir aber keiner. Einige von ihnen besch├Ąftigen sich zum Beispiel mit Github und haben das Repository nicht zuerst eingerichtet. Andere hatten die falsche Git-Adresse. Und andere sagten, ich sollte rennen git config --global http.proxy das hat nicht geholfen.

Au├čerdem habe ich alle Ordner- / Dateiberechtigungen dreifach ├╝berpr├╝ft und sie sind alle f├╝r den Nginx-Benutzer lesbar und beschreibbar.

Antworten:

1 f├╝r Antwort Ôäľ 1

Um HTTP (oder ein anderes Protokoll, das das Packen unterst├╝tzt) ordnungsgem├Ą├č abzurufen, m├╝ssen Sie das Packen manuell ausf├╝hren.

Sie k├Ânnen dies tun, indem Sie ausf├╝hren git update-server-info w├Ąhrend im Repository-Verzeichnis.

Es k├Ânnte praktisch sein, dies in das Feld zu setzen post-update Git Haken Sie das Repo ein, so wird es automatisch gemacht, wenn Sie dr├╝cken.

mtak@gen1:/srv/git/puppet.git/hooks$ cat post-update
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

exec git update-server-info

1 f├╝r Antwort Ôäľ 2

Diese Fehlermeldung entspricht der Meldung "Das Repository existiert nicht".

├ťberpr├╝fen Sie, ob die von Ihnen verwendete URL unter Abrufen und Push f├╝r den Befehl angezeigt wird:

git remote show origin

Dies sollte ein Ergebnis wie geben git@git.assembla.com:[REPO-NAME].git.

Wenn die URL falsch ist, k├Ânnen Sie sie mit dem folgenden Befehl beheben:

git remote set-url origin [REPO-URL]

0 f├╝r Antwort Ôäľ 3

Stellen Sie sicher, dass das Git-Repository, auf das Sie zugreifen m├Âchten, das HTTPS-Protokoll unterst├╝tzt?

Beachten Sie au├čerdem, dass der Repository-Name zwischen Gro├č- und Kleinschreibung unterscheidet.

Stellen Sie au├čerdem sicher, dass die Repository-URL von Ihrem Netzwerk aus erreichbar ist. M├Âglicherweise liegt ein Problem mit Port 443 (https) vor.

Stellen Sie sicher, dass der Proxy f├╝r Git richtig eingestellt ist, wenn Sie sich hinter einem Proxy befinden!

git config --global http.proxy

Siehe auch Infos hier: https://confluence.atlassian.com/bbkb/info-refs-not-valid-is-this-a-git-repository-313467635.html

Hoffe das hilft.