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://[email protected]/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!

114
demandé sur J. Bruni 2011-05-27 13:16:42
la source

3 ответов

C'est la commande que vous devez exécuter sur le miroir:

git remote update
176
répondu ralphtheninja 2011-05-27 15:12:19
la source

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"... :- )

6
répondu J. Bruni 2017-05-15 17:05:44
la source

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:

3
répondu sehe 2017-05-23 15:10:54
la source

Autres questions sur git git-clone git-remote mirror git-fetch