Como atualizar um clone do git –mirror?

Eu criei um repository git para espelhar um site ativo (que é um repository git não-nu):

git clone --mirror ssh://user@example.com/path/to/repo 

Agora, para manter esse clone de espelhamento atualizado com todas as mudanças de sua origem remota, quais comandos ou comandos devo usar?

Eu gostaria de manter tudo atualizado: commits, refs, hooks, branches, etc.

Obrigado!

Este é o comando que você precisa para executar no espelho:

 git remote update 

Em relação a commits, refs, branches e ” et cetera “, o Magnus answer apenas funciona (git remote update).

Mas infelizmente não há como clonar / espelhar / atualizar os ganchos , como eu queria …

Eu encontrei este tópico muito interessante sobre clonagem / espelhamento dos ganchos:

http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

Eu aprendi:

  • Os “ganchos” não são considerados parte do conteúdo do repository.

  • Há mais dados, como a pasta “.git / description”, que não é clonada, assim como os ganchos.

  • Os ganchos padrão que aparecem no diretório “hooks” vêm do TEMPLATE_DIR

  • Existe este recurso “template” interessante no git.

Então, eu posso ignorar essa coisa “clonar os ganchos” ou optar por uma estratégia de rsync , considerando os propósitos do meu espelho (backup + fonte para outros clones, apenas).

Bem … eu vou esquecer a clonagem de hooks e manter o caminho “update remoto do git”.

  • Sehe acabou de apontar que não apenas “ganchos” não são gerenciados pelo processo clone / update, mas também stashes, rerere, etc … Então, para um backup estrito, o rsync ou equivalente seria o caminho a ser seguido. Como isso não é realmente necessário no meu caso (eu posso não ter ganchos, stashes, e assim por diante), como eu disse, eu vou ficar com a “atualização remota”.

Obrigado! Melhorou um pouco do meu próprio “git-fu” … 🙂

Veja aqui: O Git não clona todas as ramificações em clones subsequentes?

Se você realmente quer isso puxando os branches ao invés do push --mirror , você pode dar uma olhada aqui:

“fetch –all” em um repository git bare não sincroniza ramificações locais com as remotas

Esta resposta fornece etapas detalhadas sobre como conseguir isso com relativa facilidade:

Intereting Posts