Web 开发服务器上的镜像存储库

Mirror repositories on web development server

正如我在 git 上阅读的文档,裸存储库有利于共享,非裸存储库有利于开发。
我正在设置一个开发服务器,它应该提供 SCM、Jenkins,并提供网页以进行一些手动测试。
为了提供 SCM,我使用 GOGS 创建裸仓库以在开发人员之间共享,我需要这些裸仓库以某种方式硬链接到 apache 文件夹中的非裸仓库(通常 /var/www/http/)并模拟所有更改自动在裸仓库上。

可能吗?

provide SCM I use GOGS which creates bare repos to share between developers, I need that these bare repos somehow get hardlinked to non-bare repos on the Apache folder (usually /var/www/http/)

这通常是通过设置在由 GOGS 管理的裸仓库中的 post-receive 挂钩来完成的。
该脚本将是:

git --git-dir=/path/to/project_root/.git --work-tree=/var/www/http/ checkout -f

推送到这些裸仓库的任何提交都将在您的网站上可见。

要制作非裸仓库,git clone 将裸仓库放到所需位置。

顺便说一句,我不建议在用于部署的相同位置进行开发。它最终会以非常不受欢迎的方式限制你。相反,构建一个小脚本,使您的 "deployment bundle" 成为一个 tgz 或 zip 文件,其中包含需要在您的网络服务器中解压缩的项目。