有什么方法可以设置git,以便它监听来自远程仓库的更新,并在发生任何变化时将其拉出?用例是我想使用git部署Web应用程序(以便获得部署的应用程序的版本控制),但想将“中央” git存储库放到Github而不是Web服务器上(Github的界面太好了) 。
有没有人得到这个工作?Heroku是如何做到的?我的Google-fu无法给我任何相关结果。
Answers:
Git具有“钩子”,可以在其他动作之后执行的动作。您似乎正在寻找的是“接收后挂钩”。在github管理员中,您可以设置一个接收后URL,每次有人推送到您的存储库时,该URL都会被命中(有效负载包含有关所推送内容的数据)。
对于它的价值,我认为自动拉并不是一个好主意-如果在您的分支中出现了问题,该怎么办?capistrano
对于此类事情,我会使用类似的工具(或等效工具)。
在unix-likes上,您可以在计算机上创建cron作业,该作业称为“ git pull”(每天,每周或任何时间)。在Windows上,您可以使用任务计划程序或“ AT”命令执行相同的操作。
while true; do git pull; sleep 10; done
。这将git pull
每10秒执行一次...
有诸如Jenkins或Bamboo的持续集成程序,可以检测提交并触发构建,测试,打包和部署之类的操作。它们可以满足您的要求,但是它们的依赖项繁重,难以配置,最后它们可能会定期对git仓库进行检查,其效果与每分钟通过cron调用git pull一样。
我知道这个问题是有点老了,但你可以使用windows日志和Git使用网络挂接和PHP(假设你的项目涉及一个web服务器autopull项目看我的要点在这里:。 https://gist.github.com/ upggr / a6d92e2808e9628ebe0d01fd93569f4a