我需要在Linux机器上创建一个Git存储库,然后通过HTTP访问它。还需要一个用户的完全访问权限和对匿名用户的只读权限。
之前我已经创建了本地存储库,但我不知道如何创建它(例如:inside / var / www或/ opt / git /...)
我试过这样做:
-sudo将GitHub存储库克隆到/var/www/repos/repo.git
-cd /var/www/repos/repo.git
-sudo git --bare update-server-info
-sudo mv hooks / post-update.sample hooks / post-update
-sudo service apache2 restart
然后我尝试从另一台机器访问此存储库:
- 使用浏览器:( http协议)192.168.1.49/repo.git< - WORKS
- 终端:git clone --bare(http协议)192.168.1.49/repo.git< - 不工作
终端说:
克隆到裸存储库repo.git ... 致命的:(http协议)192.168.1.49/repo.git/info/refs?service=git-upload-pack not found:你在服务器上运行了git update-server-info吗?
我想也许这是一个权限问题。我需要如何管理/ var / www?
中的权限编辑:已经修好,只需要:
- 将存储库输入/ var / www / repos / named repo.git
- 使用sudo chown更改www文件夹的权限-R www-data:www-data / var / www
-enable webdav with sudo a2enmod dav_fs
-config文件到/etc/apache2/conf.d中调用git.conf
- 使用sudo htpasswd -c /etc/apache2/passwd.git用户为用户创建文件 - 使用sudo mv /var/www/repos/repo.git/hooks/post-update.sample /var/www/repos/repo.git/hooks/post-update& amp ;,重新命名pot-update文件并使其可执行。 &安培; sudo chmod a + x /var/www/repos/repo.git/hooks/post-update
-update服务器并使用sudo git update-server-info&&重新启动apache sudo service apache2 restart
而且,要解决推送问题:
将文件.git / config编辑到您的存储库文件夹(客户端计算机)中,并将用户名和密码放在URL上:
url =(http协议)用户:password@url/repos/repo.git
所以,现在我只需要为匿名用户设置只读。
答案 0 :(得分:1)
已经修好,只需要:
- 将存储库输入/ var / www / repos / named repo.git
- 使用sudo chown -R www-data更改www文件夹的权限:www-data / var / www
-enable webdav with sudo a2enmod dav_fs
-config文件到/etc/apache2/conf.d,名为git.conf
- 使用sudo htpasswd -c /etc/apache2/passwd.git用户
为用户创建文件- 将pot-update文件重命名,并使用sudo mv /var/www/repos/repo.git/hooks/post-update.sample
使其可执行/var/www/repos/repo.git/hooks/post-update& amp;& sudo chmod a + x
/var/www/repos/repo.git/hooks/post-update
-update服务器并使用sudo git update-server-info&&重新启动apache sudo service apache2 restart
而且,要解决推送问题:
将文件.git / config编辑到您的存储库文件夹(客户端计算机)
并将用户名和密码放在url:url =(http
协议)用户:password@url/repos/repo.git
所以,现在我只需要为匿名用户设置只读。