J'ai créé un référentiel git pour mettre en miroir un site actif (qui est un référentiel non-nu):
git clone --mirror ssh://[email protected]/path/to/repo
Maintenant, pour garder ce clone miroir à jour avec toutes les modifications de son origine distante, quelle commande ou quelles commandes dois-je utiliser?
J'aimerais que tout soit mis à jour: commits, références, crochets, branches, etc.
Merci!
Voici la commande que vous devez exécuter sur le miroir:
git remote update
En ce qui concerne les commits, les références, les branches et " et cetera ", la réponse de Magnus ne fonctionne que (git remote update
).
Mais malheureusement, il n'y a aucun moyen de clone
/miroir/update
les crochets , comme je le voulais ...
J'ai trouvé ce fil très intéressant sur le clonage/duplication des crochets:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
J'ai appris:
Les crochets ne sont pas considérés comme faisant partie du contenu du référentiel.
Il y a plus de données, comme le dossier .git/description
, qui ne sont pas clonées, tout comme les crochets.
Les hooks par défaut qui apparaissent dans le répertoire hooks
proviennent du répertoire TEMPLATE_DIR
Il y a cette intéressante fonctionnalité template
sur git.
Donc, je peux soit ignorer cette "chose du clone des crochets", soit opter pour une stratégie rsync
, étant donné les objectifs de mon miroir (sauvegarde + source pour les autres clones uniquement).
Eh bien ... je vais simplement oublier le clonage des crochets et m'en tenir à la méthode git remote update
.
clone
/update
, mais aussi les caches, les rerere, etc. Donc, pour une sauvegarde stricte, rsync
ou équivalent serait vraiment la voie à suivre. Comme ce n'est pas vraiment nécessaire dans mon cas (je peux me permettre de ne pas avoir de crochets, de caches, etc.), comme je l'ai dit, je vais m'en tenir au remote update
.Merci! Amélioré un peu de mon propre "git-fu" ... :-)
Voir ici: Git ne clone pas toutes les branches des clones ultérieurs?
Si vous le souhaitez vraiment en tirant des branches au lieu de Push --mirror
, vous pouvez jeter un oeil ici:
"fetch --all" dans un dépôt git bare ne synchronise pas les branches locales avec celles distantes
Cette réponse explique en détail comment y parvenir relativement facilement: