Miroir un dépôt git en tirant?

je me demande s'il n'y a pas un moyen facile, c'est-à-dire comme une simple tâche cron, de tirer d'un dépôt Git distant vers un miroir local en lecture seule à des fins de sauvegarde?

idéalement, il tirerait toutes les branches et étiquettes, mais le maître/tronc/tête serait suffisant.

j'ai juste besoin d'un moyen de m'assurer que si le serveur maître git meurt, nous avons un emplacement de sauvegarde que nous pourrions échouer manuellement.

39
demandé sur corydoras 2010-05-03 11:43:49

3 réponses

créer D'abord un miroir avec

git clone --mirror git@somewhere.com:repo.git

puis configurer un travail cron comme ceci:

*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags

cela va sauvegarder les changesets chaque minute. Peut-être que tu veux faire ça moins souvent.

57
répondu gregor 2015-03-16 09:14:32

comme Andrew l'a noté, chaque clone d'un git repo est une sauvegarde complète de la repo. Cela dit, si vous voulez que quelque chose soit sauvegardé automatiquement sur une machine particulière, vous pouvez créer un repo nu sur le serveur de sauvegarde, y pousser avec toutes les branches que vous voulez sauvegarder afin de le remplir initialement. Puis il suffit de configurer un crochet de mise à jour post sur le "main" repo de sorte que dès qu'il y a des propagations enfoncées, il va de l'avant et les pousse vers le repo de sauvegarde. Pas besoin d'un emploi cron ou rsync, et c'est une copie presque en direct.

9
répondu J. Cordasco 2010-05-03 15:45:17

vous avez un accès direct au serveur? alors vous pourriez juste rsync le .git répertoire

-3
répondu knittl 2010-05-03 08:31:27