我正在尝试通过 WebDAV 设置 git,目的是将其托管在我的 NAS 上,在那里我无法安装任何软件,所以我无法真正使用更智能的传输。
现在克隆可以工作了,但是推送不可以:我收到“http-push-failed”错误代码为 22 - 我用 Google 搜索了这个问题,我发现我必须启用 webdav 才能允许推送,但它已经启用了(我可以在 Windows 上安装它然后对其进行操作,但我更愿意直接推送到它)。
我确实运行了 git update-server-info 并且正在本地网络中尝试它。
我尝试的命令是
git push http://username:password@domain/share/.git master
(我也尝试过 https)
答案1
完成 git update-server-info 后,需要使用 service apache2 restart 重新启动 apache。
如果仍然遇到相同的错误,请将文件 .git/config 编辑到客户端存储库中,并修改 [remote "origin"] 的“url”行,如下所示:
url = http://username:password@domain/and/repository.git
如果这不能解决问题,则可能是您在存储库或项目文件夹中设置的权限错误。所有文件(包括项目文件,如 project1.git)的所有者都应为 www-data(例如:chown -R www-data:www-data /var/www/repository)
这三个技巧解决了我的问题。