Ответ 1
Настоятельно рекомендуется НЕ использовать WebDAV, если это возможно. Если вы должны использовать HTTP/HTTPS, то рекомендуется использовать git-http-backend CGI script через WebDAV.
У меня есть репозиторий Git в каталоге, обслуживаемом apache на сервере. Я настроил WebDAV и, похоже, работает правильно. Litmus возвращает 100% успеха.
Я могу клонировать мой репозиторий с удаленного хоста, но при попытке нажать через http или https я получаю следующую ошибку:
Ошибка: не удается получить доступ к URL-адресу https://git.example.com/repo/, код возврата 22 фатальный: git -http-push failed
Любая идея?
Настоятельно рекомендуется НЕ использовать WebDAV, если это возможно. Если вы должны использовать HTTP/HTTPS, то рекомендуется использовать git-http-backend CGI script через WebDAV.
Отредактируйте следующий раздел вашего файла .git/config:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://git.repository.url/repo.git
к
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:[email protected]/repo.git
Затем попробуйте git push origin master
.
Отредактируйте данные аутентификации в конфигурационных файлах для других URL-адресов репозитория по мере необходимости и нажмите на требуемую ветку.
Как в этом комментарий, что говорит ваш /Web/git/Logs/ErrorLog
об этой ошибке?
После поиска в
/Web/git/Logs/ErrorLog
, я обнаружил, что проблема разрешена в файле блокировки. В моейhttpd-dav.conf
у меня есть строка...
DavLockDB "/usr/var/DavLock"
Затем я проверил каталог
/usr/
, каталог <var
отсутствовал.
$ mkdir var
$ cd var
$ chown www .
$ chgrp www .
И затем повторение процесса кажется, что теперь я могу нажать!! =)
Как упоминалось Эдди в комментариях и Arrowmaster в ответе , smart http protocol теперь является частью недавнего дистрибутива Git. git-http-backend
CGI script может выполнять любые команды Git через http.
Более разумные протоколы (git и ssh) вместо этого будут иметь разговор с процессом загрузки Git на сервере, который будет определять точный набор объектов, которые нужны клиенту, и создавать собственный пакетный файл только с этими объектами и переверните его.
вам может потребоваться добавить пользователя в качестве члена для репозитория и, возможно, разрешений на обновление.
мы должны были сделать это с каждым участником, который будет участвовать в наших репозиториях github наших организаций.
У меня такая же проблема, и я нашел решения, может быть, это будет полезно для кого-то.
Здесь - мое решение с конфигурацией git -http-backend и ldap-аутентификацией.
У меня была аналогичная проблема, в которой я смог клонировать и извлекать из репозитория с помощью протокола HTTP, но я не смог нажать. Я решил это, выполнив следующее.
Я изменил URL-адрес удаленного в файле проекта .git/config, чтобы он соответствовал URL-адресу GitHub SSH. Затем я выполнил все инструкции в разделе " https://help.github.com/articles/generating-ssh-keys#platform-linux" и устранил неисправность с помощью https://help.github.com/articles/error-permission-denied-publickey". Самое приятное то, что я не имел дело с Apache или изменял любые настройки HTTP на удаленном сервере.