Git:从仓库自动拉?
有没有什么办法可以设置git,以便它侦听来自远程回购的更新,并且在有变化的时候将会收到更新? 用例是我想要部署一个使用git的web应用程序(所以我得到了部署的应用程序的版本控制),但是想把“中央”的git仓库放在Github上,而不是在web服务器上(Github的界面太好了) 。
有没有人得到这个工作? Heroku如何做呢? 我的Google-fu没有给我任何相关的结果。
Git有“挂钩”,可以在其他操作之后执行的操作。 你似乎在寻找的是“后接收钩”。 在githubpipe理员中,你可以设置一个post-receive url,每次有人推回你的repo时,会被命中(有效载荷包含关于刚推出的内容的数据)。
对于什么是值得的,我不认为自动拉动是一个好主意 – 如果有什么问题推到了你的分支上呢? 我会使用像capistrano
(或等价物)这样的工具。
在unix-like上,你可以创build一个cron作业,在你的机器上调用“git pull”(每天或每周或其他)。 在Windows上,您可以使用任务计划程序或“AT”命令来执行相同的操作。
Jenkins或Bamboo等持续集成程序可以检测提交并触发构build,testing,打包和部署等操作。 他们做你想做的事情,但他们沉重的依赖,很难configuration,最后他们可能会使用定期检查对git存储库,这将有相同的效果,如每分钟调用cron的git拉。
我知道这个问题有点老,但你可以使用Windows日志和Git来使用webhook和php自动填充你的项目(假设你的项目涉及一个web服务器,请参阅我的要点: https : //gist.github.com/ upggr / a6d92e2808e9628ebe0d01fd93569f4a
你可以写一个脚本来做到这一点,做到以下几点:
- 获得远程HEAD提交ID
- 比较与本地头部的ID
- 如果它们不同,请使用git pull并使用deploy命令
- 如果相同,通过
- 写一个cron作业来执行脚本(注意:防止重复执行)