He creado un repositorio git para reflejar un sitio en vivo (que es un repositorio git no descubierto):
git clone --mirror ssh://[email protected]/path/to/repo
Ahora, para mantener este clon espejo actualizado con todos los cambios desde su origen remoto, ¿qué comando o comandos debo usar?
Me gustaría mantener todo actualizado: confirmaciones, referencias, ganchos, ramas, etc.
¡Gracias!

git fetch? ¿Ogit remote updatesolo lo hará todo?En cuanto a commits, refs, ramas y " etcétera ", la respuesta de Magnus simplemente funciona (
git remote update).Pero desafortunadamente no hay forma de
clone/ espejo /updatelos ganchos , como quería ...He encontrado este hilo muy interesante sobre clonar / reflejar los ganchos:
http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread
He aprendido:
Los ganchos no se consideran parte del contenido del repositorio.
Hay más datos, como la
.git/descriptioncarpeta, que no se clonan, al igual que los ganchos.Los ganchos predeterminados que aparecen en el
hooksdirectorio provienen deTEMPLATE_DIRExiste esta
templatecaracterística interesante en git.Por lo tanto, puedo ignorar esta "cosa de clonar los ganchos" o ir por una
rsyncestrategia, dados los propósitos de mi espejo (copia de seguridad + fuente para otros clones, solo).Bueno ... me olvidaré de la clonación de ganchos y me mantendré firme
git remote update.clone/updateproceso, sino que también se esconden, se vuelven a armar, etc. Por lo tanto, para una copia de seguridad estricta,rsynco equivalente, realmente sería el camino a seguir. Como esto no es realmente necesario en mi caso (puedo permitirme no tener ganchos, escondites, etc.), como dije, me apegaré alremote update.¡Gracias! Mejoré un poco mi propio "git-fu" ... :-)
fuente
Ver aquí: ¿ Git no clona todas las ramas en clones posteriores?
Si realmente quieres esto tirando ramas en lugar de
push --mirror, puedes echar un vistazo aquí:"fetch --all" en un repositorio de git bare no sincroniza las ramas locales con las remotas
Esta respuesta proporciona pasos detallados sobre cómo lograr eso con relativa facilidad:
fuente
pushno es una opción para mí porque necesito hacerlo en el lado receptor (desde donde está el clon);pulltampoco es una opción porque un repositorio espejo es un repositorio desnudo (sin árbol de trabajo, por lo tanto, sin "extracción"), parece que degit remote updatehecho lo hace todo (mucho más fácil que la respuesta referenciada) ... De todos modos, ¡gracias! Ciertamente hay información valiosa en las preguntas / respuestas vinculadas.rsynceso en ese caso. Además, supongo que te estás olvidando de los escondites (mira aquí ) y también obtienes información ...?