我已经在服务器上设置了一个远程 git 存储库。以下是文件和目录结构
/var/lib/git/myproject1 ## the git repository for myproject1
/var/lib/git/myproject2 ## the git repository for myproject2
/var/www/mywebwebsite.com/public_html/myproject1 ## symbolic link to /var/lib/git/myproject1
/var/www/mywebwebsite.com/public_html/myproject2 ## symbolic link to /var/lib/git/myproject2
以下是我的 .gitconfig 的样子
[core]
excludesfile = /var/www/.gitignore
[user]
name = webguy
email = [email protected]
因此,我从本地主机成功运行了git pull mypro1 master
,其中mypro1
指向http://mywebsite.com/myproject1
。 pull 按照预期从远程存储库下载了所有文件。但是当我执行 时git push mypro1 master
,我收到错误
Cannot access URL http://mywebsite.com/myproject1/, return code 22 fatal: git-http-push failed
我遇到了与存储库相同的错误myproject2
。
我是否错误地设置了 git 或 apache?
答案1
您需要启用dav
才能通过 http 主动推送更改。查看官方通过 http 进行 git 服务器指南了解有关如何安装的详细信息以及您可能错过的其他内容。
答案2
编辑 .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 的身份验证详细信息,并推送到所需的分支。