我已经在http上设置了一个git服务器,我能够成功克隆或从http服务器中提取,但是当我给出一个git push时,我收到以下错误
Fetching remote heads...
refs/
refs/tags/
refs/heads/
updating 'refs/heads/master'
from bc6087dffe872999105c79e8b4bdb34d3a5b7bce
to 90e7a617d575f82060c587badc0740733131266c
sending 2 objects
MKCOL 9d815311716ad694266a0cff2f17205aa12ee87c failed, aborting (22/403)
MKCOL 90e7a617d575f82060c587badc0740733131266c failed, aborting (22/403)
Updating remote server info
fatal: git-http-push failed
我们可以通过http执行git push,还是http只能用于读访问?或者它也可以用于写访问吗?
我有Web DAV,我是否必须进行任何其他更改才能执行git推送?
答案 0 :(得分:1)
不要使用WebDAV。将您的HTTP服务器设置为smart HTTP server。
如果您正在使用Apache并在git
中安装了/usr
,那么您可以将其添加到httpd.conf
:
SetEnv GIT_PROJECT_ROOT [path_to_git_repo_root]
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/