这可能是一个git hook问题,还有一点git工作流,应该怎么做。这就是我们现在正在做的事情:
开发人员在开发中有应用程序的本地存储库(prod,dev,test),在更改代码和正确测试之后,他们推送或合并到安装在托管VPS上的gitlab的中央存储库。
除此之外,我们有几个托管该应用程序的远程服务器,其中git clite是来自gitlab的。
我们在每个执行脚本pull.sh
的远程服务器上使用git repo,这些服务器具有每个分支的命令行,因此我们使用gitlab central repo的更改来更新服务器上的本地存储库: / p>
git checkout prod
git fetch origin prod
git reset --hard origin/prod
git pull
所以这就是问题所在。当开发人员将更改推送或合并到gitlab central repo时,我们如何自动更新每个远程服务器上的repo?现在我们必须在每个远程服务器上SSH并手动启动脚本。当然我们可以使用cron,但我对git hooks更感兴趣。
我们是否必须更改逻辑,以便在合并/推送gitlab服务器之后接收挂钩并且我们推送到远程服务器?或者我们可以通过接收后脚本中的SSH命令在远程服务器上远程执行pull.sh吗?