¿Cómo actualizar git clone --mirror?

Creé un repositorio de git para reflejar un sitio en vivo (que es un repositorio de git no desnudo):

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

Ahora, para mantener este espejo clown actualizado con todos los cambios desde su fuente remota, ¿qué comando o comandos debo usar?

Me gustaría que todo estuviera actualizado: confirmaciones, enlaces, intercepciones, sucursales, etc.

Muchas gracias

119
27 мая '11 в 12:16 2011-05-27 12:16 J. Bruni preguntó el 27 de mayo de 2011 a las 12:16 2011-05-27 12:16
@ 3 respuestas

Este es el comando para ejecutar en el espejo:

 git remote update 
181
27 мая '11 в 14:12 2011-05-27 14:12 la respuesta se da ralphtheninja 27 de mayo de 2011 a las 14:12 2011-05-27 14:12

En cuanto a confirmaciones, enlaces, sucursales y "etcétera", Magnus responde simplemente a la ejecución ( git remote update ).

Pero, desafortunadamente, no hay forma de clone / duplicar / update ganchos , como quería ...

Encontré este tema muy interesante sobre la clonación / duplicación de ganchos

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

Yo aprendi

border=0
  • Los interceptores no se consideran parte del contenido del repositorio.

  • Hay más datos, como una carpeta .git/description , que no están clonados, así como enlaces.

  • Los hooks predeterminados que aparecen en los hooks provienen de TEMPLATE_DIR

  • Hay una función de template interesante en git.

Por lo tanto, puedo ignorar este "clonar el objeto de los enganches" o seguir la estrategia rsync , considerando los objetivos de mi réplica (solo fuente de respaldo + para otros clones).

Bueno ... simplemente me olvidaré de la clonación de clones y seguiré con el método de git remote update .

  • Sehe acaba de indicar que no solo los interceptores no están controlados por el proceso de clone / update , sino que también los escondites, referencias, etc. Por lo tanto, para una copia de seguridad estricta rsync o equivalente será realmente el camino. Dado que esto realmente no es necesario en mi caso (puedo permitirme no tener ganchos, retrasos, etc.), como dije, me limitaré a remote update .

Muchas gracias Algunos de mis propios git-fu han mejorado ... :-)

7
27 мая '11 в 17:55 2011-05-27 17:55 J. Bruni da la respuesta el 27 de mayo de 2011 a las 17:55 2011-05-27 17:55

Vea aquí: ¿ Git no clona todas las ramas en clones posteriores?

Si realmente quieres esto, tirando de ramas en lugar de push --mirror , puedes mirar aquí:

"fetch-all" en los repositorios de git bare no sincroniza las sucursales locales con el remoto

Esta respuesta contiene instrucciones detalladas sobre cómo lograr esto con relativa facilidad:

4
27 мая '11 в 14:56 2011-05-27 14:56 la respuesta es dada el 27 de mayo de 2011 a las 14:56 2011-05-27 14:56

Otras preguntas sobre tags o Haz una pregunta