我们在服务器上有一个"裸"的git存储库,用于Web门户项目.一些程序员,设计师等......执行数十次push
和pull
从中执行.
现在我们想要在服务器本身上测试项目,并且总是通过Apache Web服务器测试最后一次提交,该服务器安装在存储"bare"git存储库的同一台机器上.
我们怎样才能"unbare"仓库,并让工作目录包含始终与只有最后提交从上次获得push
?
或者其他任何旨在获得相同结果的东西?
您可以使用post-receive挂钩git pull
在webserver
文档根目录/存储库中执行.
在您的裸存储库中
mv hooks/post-receive.sample hooks/post-receive
chmod +x .git/hooks/post-receive
Run Code Online (Sandbox Code Playgroud)
收到的帖子应该是这样的
#!/bin/sh
WEB_ROOT='/var/www/project'
cd $WEB_ROOT
git pull
Run Code Online (Sandbox Code Playgroud)
一个更优雅的解决方案,不涉及Web服务器区域是git存储库,您还可以查看有关钩子的git文档
注意:如果您使用简单的解决方案,请确保您的网络服务器不提供.git目录,这将使一些黑客/破解者访问网站源代码!