正如我在 git 文档上阅读的那样,裸存储库有利于共享,非裸存储库有利于开发。
我正在设置一个开发服务器,它应该提供 SCM、Jenkins 并提供网页以进行一些手动测试。
为了提供 SCM,我使用GOGS创建裸存储库以在开发人员之间共享,我需要这些裸存储库以某种方式硬链接到 apache 文件夹(通常/var/www/http/
)上的非裸存储库,并自动模仿裸存储库上的所有更改。
可能吗?
提供 SCM 我使用 GOGS 创建裸存储库以在开发人员之间共享,我需要这些裸存储库以某种方式硬链接到 Apache 文件夹上的非裸存储库(通常
/var/www/http/
)
这通常是通过 GOGS 管理的裸仓库中设置的接收后挂钩来完成的。
该脚本将是:
git --git-dir=/path/to/project_root/.git --work-tree=/var/www/http/ checkout -f
推送到那些裸仓库的任何提交都将在您的网站中可见。
要制作非裸仓库,git clone
将裸仓库放到所需位置。
顺便说一句,我不建议在用于部署的同一位置进行开发。它最终会以非常不受欢迎的方式限制你。相反,构建一个小脚本来制作您的“部署包”,这是一个 tgz 或 zip 文件,其中包含需要在您的 Web 服务器中解压缩的项目。