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 update
solo 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 /update
los 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/description
carpeta, que no se clonan, al igual que los ganchos.Los ganchos predeterminados que aparecen en el
hooks
directorio provienen deTEMPLATE_DIR
Existe esta
template
característica interesante en git.Por lo tanto, puedo ignorar esta "cosa de clonar los ganchos" o ir por una
rsync
estrategia, 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
/update
proceso, sino que también se esconden, se vuelven a armar, etc. Por lo tanto, para una copia de seguridad estricta,rsync
o 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
push
no es una opción para mí porque necesito hacerlo en el lado receptor (desde donde está el clon);pull
tampoco 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 update
hecho 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.rsync
eso en ese caso. Además, supongo que te estás olvidando de los escondites (mira aquí ) y también obtienes información ...?