не могу клонировать репозитории git через http; информация/ссылки не найдены

Я пытаюсь сделать репозиторий git доступным только для чтения через http.

Я делаю это по-старому, потому что git-http-backend недоступен в моей хост-системе. То есть я просто помещаю голый репозиторий в доступное по http место.

Я успешно создал пустой репозиторий на хосте, используя git clone --bare <some-remote-location>.

Теперь, когда я указываю git на новый клон с помощью git clone http://my.host.name/location, появляется сообщение repository not found.

Когда я перехватываю сетевой трафик, я вижу, что git пытается получить доступ к http://my.host.name/location/info/refs. Ожидается, что это не удастся, потому что в репозитории нет пути info/refs. Скорее есть каталоги info и refs непосредственно под корнем репозитория.

Очевидно, что клонированный голый репозиторий не структурирован так, как ожидал клиент. Кто-нибудь знает, почему это может быть?


person epl    schedule 31.10.2013    source источник


Ответы (5)


Вам нужно будет запустить git update-server-info на сервере, чтобы сгенерировать файлы, необходимые для "тупого" протокол» для работы.

person poke    schedule 31.10.2013
comment
Кроме того, вам нужно сделать это в голом репозитории. - person Luc; 15.01.2016

Попробуйте шаги, упомянутые http://git-scm.com/book/en/Git-on-the-Server-The-Protocols .

По сути, после выполнения git clone --bare <path-to-repository> вам нужно запустить mv hooks/post-update.sample hooks/post-update с вашим пустым репозиторием, а затем выполнить git update-server-info один раз, после чего вы сможете клонировать репо.

person Anshul Goyal    schedule 31.10.2013

У меня была эта проблема, когда пульт работал в репозитории git 1.7.X, а клиент git - 1.8.X; Я доказал это, понизив версию своего клиента до 1.7.X - это решило проблему. Поэтому убедитесь, что git имеет одну и ту же версию на «клиентской» и «серверной» стороне. Команда, которую я запускал, была git clone .

person idej1234    schedule 11.04.2014
comment
У меня была такая же проблема, и оказалось, что сервер отправлял charset=utf-8. см. github.com/takezoe/gitbucket/issues/20 - person AlexDev; 06.05.2014

Не забудьте также проверить, включены ли необходимые модули в apache. Это необходимые модули для git через HTTP:

  • mod_alias
  • mod_cgi
  • mod_env
person Marcs    schedule 24.12.2014

У меня была такая же ошибка при попытке клонировать проект gitlab, потому что я указал неправильный путь!
Я выбрал путь SSH вместо пути HTTP. (+ не забудьте .git)

git clone *HTTP_path.git*
person qfazille    schedule 10.05.2017