0

快速提问,也许有人可以提供一些关于最佳方法的见解。

我们使用 Github 进行开发,并以这样的方式工作,即主分支是我们开发服务器上的镜像。一旦开发服务器获得批准,我们将其复制到生产中。

我想知道,有没有办法让我的服务器环境与 Github master 同步并运行,这样如果我们进行 master 合并,它将自动成为我们开发服务器上运行的内容?如果不在开发服务器上运行 git,这可能吗?

如果没有,人们发现还有哪些其他解决方案可以避免到处复制文件?

谢谢!

4

1 回答 1

1

人们通常为此使用的是钩子,基本上是在您的存储库中的某些操作上执行的脚本。对于这种情况,最合适的 hook 是post-receive hook。在将更改推送到您的存储库后,它会被执行。然后,您可以在钩子执行时更新您的其他存储库,并在主分支更改时开始部署。

在 GitHub 上,您的存储库的管理部分中提供了挂钩(“服务挂钩”)。如果您没有运行特定的系统,则可以只使用 WebHook,它本质上会在执行 post-receive 挂钩时发布带有信息的自定义 URL。这允许您在服务器上放置一个公共触发脚本,该脚本在执行时会启动更新和部署。为了增加安全性,您应该检查 IP 地址是否是 GitHub 页面上列出的地址之一。

于 2012-11-29T14:12:45.903 回答