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

你可以写一个脚本来做到这一点,做到以下几点:

  1. 获得远程HEAD提交ID
  2. 比较与本地头部的ID
  3. 如果它们不同,请使用git pull并使用deploy命令
  4. 如果相同,通过
  5. 写一个cron作业来执行脚本(注意:防止重复执行)