Comment mettre à jour un git clone --miroir?
j'ai créé un dépôt git pour miroir un site en direct (qui est un dépôt git non-nu):
git clone --mirror ssh://user@example.com/path/to/repo
maintenant, pour garder ce clone miroir mis à jour avec tous les changements de son origine à distance, quelle commande ou commandes je dois utiliser?
j'aimerais garder tout à jour: commits, refs, hooks, branches, etc.
Merci!
3 réponses
C'est la commande que vous devez exécuter sur le miroir:
git remote update
concernant commits, refs, branches et " et cetera ", la réponse de Magnus ne fonctionne que (mise à jour à distance git).
mais malheureusement il n'y a aucun moyen de cloner / miroir / mettre à jour les crochets , comme je le voulais...
j'ai trouvé ce fil très intéressant sur le clonage/miroir 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 dépôt.
-
il y a plus de données, comme le".git / description " dossier, qui ne se cloné pas, tout comme les crochets.
-
les crochets par défaut qui apparaissent dans le dir "hooks" proviennent de TEMPLATE_DIR
-
Il est intéressant de "modèle" sur git.
donc, je peux soit ignorer cette "chose clone the hooks", soit opter pour une stratégie rsync
, étant donné les buts de mon miroir (sauvegarde + source pour les autres clones, seulement).
bien... Je vais juste oublier le clonage de hooks, et m'en tenir à la méthode" git remote update".
- Sehe vient de souligner que non seulement les" crochets " ne sont pas gérés par le processus clone / update, mais aussi stashs, rerere, etc... Donc, pour une sauvegarde stricte, rsync ou l'é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 à la "mise à jour à distance".
Merci! J'ai amélioré un peu mon "git-fu"... :- )
Voir ici: Git n'a pas cloner toutes les branches sur les clones?
si vous voulez vraiment cela en tirant des branches au lieu de push --mirror
, vous pouvez jeter un oeil ici:
"fetch --tous" dans un git dépôt nu ne pas synchroniser les branches locales de la distance
cette réponse fournit des étapes détaillées sur la façon d'atteindre ce relativement facilement: