1

我需要在 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

所以,现在我只需要为非用户设置只读。

4

1 回答 1

1

已经修好了,刚需:

- 将存储库放入名为 repo.git 的 /var/www/repos/

- 使用 sudo chown -R www-data:www-data /var/www 更改 www 文件夹的权限

- 使用 sudo a2enmod dav_fs 启用 webdav

-config 文件到名为 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

-更新服务器并使用 sudo git update-server-info && sudo service apache2 restart 重新启动 apache

并且,要解决推送问题:

将文件 .git/config 编辑到您的存储库文件夹(客户端计算机)

并将用户名和密码放在 url 上: url = (http

协议)用户:密码@url/repos/repo.git

所以,现在我只需要为非用户设置只读。

于 2015-06-02T12:45:20.117 回答