git-Mirrors per Cron aktualisieren

Ich habe ein paar mei­ner Pro­jek­te auf git­hub ge­legt; al­ler­dings hätte ich doch gerne die Daten der Re­po­si­to­ries auf mei­nem Ser­ver - da bin ich ir­gend­wie eigen :-) Die Sache sieht so aus, daß ich in einem Ver­zeich­nis eine Reihe .git-Ver­zeich­nis­se (also bare Re­po­si­to­ries) lie­gen habe; ei­ni­ge davon sind die Mir­rors von git­hub, an­de­re sind ei­gen­stän­di­ge Re­po­si­to­ries. Die Mir­rors woll­te ich per Cron­job täg­lich ak­tua­li­sie­ren. Wie's geht, habe ich hier kurz zu­sam­men­ge­schrie­ben:

Einen sol­chen Mir­ror von einem git-Re­po legt man mit fol­gen­dem Kom­man­do an:

git clone --mir­ror url/repo.​git

Eine Ak­tua­li­sie­rung führt ein ein­fa­ches git fetch im je­wei­li­gen Ver­zeich­nis durch.

Damit wären die grund­le­gen­den Zu­ta­ten vor­han­den. Die­ses Skript be­kommt als Pa­ra­me­ter das Ver­zeich­nis, in dem die .git-Re­pos lie­gen; es prüft jedes davon, ob es ein Re­mo­te Re­po­si­to­ry na­mens ori­gin be­sitzt - falls ja, ak­tua­li­siert es das Repo. Das ganze per Cron­job auf­ge­ru­fen - et voilà, fer­tig!