42 votes

Mettre en miroir un dépôt git en le tirant ?

Je me demande s'il existe un moyen simple, par exemple une simple tâche cron, pour régulièrement tirer d'un dépôt git distant vers un miroir local en lecture seule à des fins de sauvegarde ?

Idéalement, il devrait tirer toutes les branches et tous les tags, mais le master/trunk/head serait suffisant.

J'ai juste besoin d'un moyen de m'assurer que si le serveur git maître meurt, nous avons un emplacement de sauvegarde vers lequel nous pouvons basculer manuellement.

61voto

gregor Points 1762

Créez 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

Ceci sauvegardera les changesets chaque minute. Peut-être voulez-vous le faire moins fréquemment.

9voto

jcordasc Points 336

Comme Andrew l'a noté, chaque clone d'un repo git est une sauvegarde complète du 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 toutes les branches que vous voulez sauvegarder afin de le remplir initialement. Ensuite, il suffit de configurer un crochet de post-mise à jour sur le repo "principal" de sorte que dès qu'il y a des commits poussés, il va de l'avant et les pousse vers le repo de sauvegarde. Pas besoin d'une tâche cron ou de rsync, et c'est une copie presque vivante.

-3voto

knittl Points 64110

Avez-vous un accès direct au serveur ? alors vous pourriez simplement rsync el .git répertoire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X