Git:从存储库中自动拉出?

Li *_*oyi 77 git deployment

有没有办法设置git,以便它从远程仓库中侦听更新,并在每次更改时拉出?用例是我想使用git部署一个Web应用程序(所以我得到了已部署应用程序的版本控制),但是想把"中央"git repo放在Github而不是Web服务器上(Github的界面真是太棒了) .

有没有人得到这个工作?Heroku是如何做到的?我的Google-fu未能给我任何相关结果.

kso*_*sol 42

Git有"钩子",可以在其他动作之后执行的动作.你似乎在寻找的是"后接收钩".在github管理员中,您可以设置一个后期接收网址,每当有人推送您的仓库时,该网址都会被点击(有效负载包含刚推送的内容的数据).

对于它的价值,我不认为自动拉动是一个好主意 - 如果出现错误被推到你的分支怎么办?我会使用类似capistrano(或等效的)工具来做这些事情.

  • 我计划的用例是为开发"测试和搞乱"阶段有一个单独的repo /分支,并且有一个特殊的"推动生产"回购,只有在我确定一切正常时才会推送.我基本上使用Git来处理rsync,除了它记录了所有部署的版本,我很容易就能回滚到以前的版本.相比像卡尼斯特拉诺这样更硬的东西的优势是我不需要学习一个全新的工具(现在是一个非常小的项目). (8认同)

Sig*_*erm 17

在unix上,你可以在你的机器上创建调用"git pull"(每天或每周或其他)的cron作业.在Windows上,您可以使用任务调度程序或"AT"命令来执行相同的操作.

  • @deepdive为什么不呢?想象一下,你家里有一个小Rasperry Pi,没有静态IP.你有什么其他选择然后运行cron或runwhen工作? (22认同)
  • OP专门要求一种方法,***监听**来自远程仓库的更新,并在每次发生变化时拉**.这个解决方案只是经常从存储库中提取,因此为了使其有效,间隔必须非常短,从而导致大量的冗余拉取请求. (7认同)
  • @Raskul 在 Stackoverflow 和其他在线论坛上,_OP_ 是_原始海报_的缩写。换句话说,问题或帖子位于线程顶部。 (4认同)
  • 不是使用Git的正确方法. (3认同)
  • 在不改变cron标签的情况下快速完成此操作:`while true; 做git pull; 睡10 done`.这将每10秒进行一次"git pull"...... (3认同)
  • 这不是一个好主意.他希望在推送后立即应用更改. (2认同)