我在本地开发代码,将其提交到本地存储库,然后将其推送到我的Bitbucket服务器。之后,我必须通过ssh登录到我的生产服务器,就像这样:
ssh my-server@my-host.de
pass: very-secure-passs
cd www/myPage
cd git pull origin master
pass: very-secure-pass
我希望避免登录到我的生产服务器并让它自动拉取。我想要有三个仓库(本地、BitBucket和生产服务器),所以我不能使用这个解决方案:在推送到服务器后执行自动拉取请求。我发现了这个问题一个钩子,当我向Bitbucket推送时,允许从VPS“拉”, 这正是我想要的,但它是2013年的,答案已经过时,因为BitBucket从那时起已经改变了。
我在这里找到了一个建议,https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-I-deploy-my-bitbucket-repo-to-my-production-server/qaq-p/565348。有人建议使用一个免费的插件Bitbucket服务器的HTTP请求钩子。
设置自动化"Pull": 每次您将代码推送到中央存储库时,您的生产机器都会收到通知并在通知时拉取存储库。Bitbucket Server提供了几个插件来支持通知过程,我使用的是Http Request Post Receive Hook:每次进行推送时,会联系配置的URL,提交一些信息。在我的生产机器上,我设置了一个小型Web服务器,等待HTTP请求。收到HTTP请求后,我评估给定的参数并执行操作(例如:拉取存储库...)
现在我的问题是:
1.是否可以使用Webhook代替HTTP-Request钩子插件?
2.如果要在接收到HTTP请求时进行拉取请求,我的生产服务器上的文件应该如何编写?我对PHP的基本示例感兴趣。
ftp
,也许您可以通过git-ftp
解决问题,它声称:Git-ftp -- 以 Git 的方式上传到 FTP 服务器。这意味着在您执行git push
后,您还需要执行git ftp push
,然后您的生产环境将会被更新。请参见:Git Push into Production (FTP)。 - tgogos