有没有办法设置git,以便它从远程仓库中侦听更新,并在每次更改时拉出?用例是我想使用git部署一个Web应用程序(所以我得到了部署应用程序的版本控制),但是想把“中央”git repo放在Github上,而不是放在Web服务器上(Github的界面真是太棒了) 。
有没有人得到这个工作? Heroku是如何做到的?我的Google-fu未能给我任何相关结果。
Git有“钩子”,可以在其他动作之后执行的动作。你似乎在寻找的是“后接收钩”。在github管理员中,您可以设置一个后期接收网址,每当有人推送您的仓库时,该网址都会被点击(有效负载包含刚推送的内容的数据)。
对于它的价值,我不认为自动拉动是一个好主意 - 如果出现错误被推到你的分支怎么办?我会使用像capistrano
(或等价物)这样的工具来做这些事情。
在unix上,你可以在你的机器上创建调用“git pull”(每天或每周或其他)的cron作业。在Windows上,您可以使用任务调度程序或“AT”命令来执行相同的操作。
有像Jenkins或Bamboo这样的持续集成程序,可以检测提交和触发操作,如构建,测试,打包和部署。他们做你想做的事,但他们很重要的依赖,很难配置,最后他们可能会对git存储库使用定期检查,这会产生与每分钟调用gron pull一样的效果。
您可以通过执行以下操作来编写脚本来实现此目的:
我知道这个问题有点老了,但你可以使用windows日志和git使用webhook和php自动调整你的项目(假设你的项目涉及一个网络服务器。请在这里查看我的要点:https://gist.github.com/upggr/a6d92e2808e9628ebe0d01fd93569f4a