Ответ 1
Вам нужно будет запустить git update-server-info
на сервере, чтобы сгенерировать файлы, необходимые для работы "немого протокола".
Я пытаюсь сделать репозиторий 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
, расположенные непосредственно под корнем репозитория.
Очевидно, клонированный голый репозиторий не структурирован так, как ожидалось клиентом. Кто-нибудь знает, почему это может быть?
Вам нужно будет запустить git update-server-info
на сервере, чтобы сгенерировать файлы, необходимые для работы "немого протокола".
Попробуйте описанные шаги здесь, на git -scm для протокола http/s.
В принципе, после выполнения git clone --bare <path-to-repository>
вам нужно запустить mv hooks/post-update.sample hooks/post-update
с помощью своего голого репозитория, а затем сделать git update-server-info
один раз, а затем вы сможете клонировать репо.
У меня возникла эта проблема, когда пульт работает в репозитории git 1.7.X и git клиент равен 1.8.X; Я доказал это, понизив мой клиент до 1.7.X - это исправило проблему. Поэтому убедитесь, что git - это ту же версию на сторонах "клиент" и "сервер". Команда, которую я запускал, была git clone.
Помните также, чтобы активировать необходимые модули на apache. Это необходимые модули для git по HTTP:
У меня была та же ошибка, пытающаяся клонировать проект gitlab, потому что я задал неправильный путь!
Я взял путь SSH
вместо пути HTTP
. (+ не забывайте .git
)
git clone *HTTP_path.git*