如何始终拥有git repo的最新工作副本?

时间:2015-11-04 17:07:23

标签: git

有没有办法设置一个存储库来“镜像”遥控器,以便我总是拥有最新的工作副本?

我想我可以简单地克隆它并随时拉动(无需推动),但理想情况下我希望每次推动遥控器都能使“镜像”更新。

原因是我想拥有最新的工作副本,以便我可以轻松测试回购的当前状态。

我大多只关心一个分支,但如果我拥有全部,那就更好了。

1 个答案:

答案 0 :(得分:0)

没有内置的&#34;推送通知&#34;,即没有内置的方法可以在机器 M <上声明存储库R M / em>(&#34;主副本&#34;机器)是&#34;主机&#34;,机器 S 上的存储库R S ( &#34;奴隶&#34;)镜像它。一个典型的解决方案是通过在其上运行git remote update来定期(可能每5分钟)让机器 S 轮询 M 。如果您设置 S 以拒绝推送,并且 M fetch行设置为+refs/*:refs/*,则它将是一个真正的镜像;如果你每隔5分钟从一个cron条目中取出一次,那么它最多会过时5分钟。

在之前的工作中,我们正在尝试在主机上使用轻量级(ish)协议(ZeroMQ,RabbitMQ或其他),发送&#34;推送通知&#34;到(多个)从属设备,这样我们就可以减少轮询间隔(可能一直到零,尽管在从属设备关闭或网络分区一段时间后会出现一些自举问题)。