我需要在 Linux 机器上创建一个 Git 存储库,然后通过 HTTP 访问它。还需要一个用户的完全访问权限和对非用户的只读权限。
我以前创建过本地存储库,但我不知道如何创建它(例如:在 /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挂钩/更新后
-sudo 服务 apache2 重新启动
然后我尝试从另一台机器访问这个存储库:
- 使用浏览器:(http 协议)192.168.1.49/repo.git <--
工作 - 使用终端: 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 中的权限?
编辑:已经修复,只是需要:
- 将存储库放入名为 repo.git 的 /var/www/repos/
- 使用 sudo chown -R www-data:www-data /var/www -
使用 sudo a2enmod dav_fs
-config 文件更改 www 文件夹的权限进入名为 git.conf
的 /etc/apache2/conf.d - 使用 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 && sudo chmod a+x /var/www/repos/repo.git/hooks/ post-update
-update 服务器并使用 sudo git update-server-info && sudo service apache2 restart 重新启动 apache
并且,要解决推送问题:
将文件 .git/config 编辑到您的存储库文件夹(客户端计算机)中,并将用户名和密码放在 url 上:
url = (http 协议)user:password@url/repos/repo.git
所以,现在我只需要为非用户设置只读。