Miroir automatique d'un dépôt git

L'un des effets secondaires de L'utilisation d'un dépôt Subversion externe était d'obtenir des sauvegardes automatiques hors site à chaque validation.

Je voudrais réaliser la même chose en utilisant Git.

C'est-à-dire que chaque commit dans mon référentiel local s'engage automatiquement dans un référentiel externe afin que les deux référentiels soient toujours synchronisés.

J'imagine qu'un crochet post-commit serait la voie à suivre. Quelqu'un a-t-il des exemples spécifiques de cela?

23
demandé sur Andy Baker 2010-08-27 13:56:10

1 réponses

J'ai écrit un crochet post-commit à cette fin. Le hook lui-même est simple; il suffit d'ajouter un fichier nommé post-commit à votre répertoire .git/hooks/ avec le contenu suivant:

git push my_remote

Le fichier post-commit doit être exécutable. Assurez-vous également d'ajouter un référentiel distant approprié avec le nom my_remote pour que ce crochet fonctionne.

J'ai également créé un lien symbolique nommé post-merge qui pointe vers post-commit. Cette option est facultative. Si vous faites cela, vous synchroniserez automatiquement après les fusions.

UPDATE: Si vous voulez vous assurer que votre serveur et votre miroir ne sont pas synchronisés et que toutes les branches sont également sauvegardées, votre crochet post-commit peut utiliser:

git push my_remote -f --mirror
18
répondu Manoj Govindan 2012-03-09 02:41:20