Pregunta

Tengo un clon / repositorio git en un servidor de desarrollo, pero ahora me estoy mudando a otro. No quiero comprometer todas mis sucursales locales y cambios en el repositorio principal, entonces, ¿cómo puedo hacer una copia exacta de todo en el servidor antiguo al servidor de noticias?

Intenté oldserver: ~ $ scp -rp project newserver: ~ / project

pero luego recibo cargas y cargas de " typechange " errores al intentar hacer algo en el servidor de noticias.

Alguien dijo algo sobre los modos x, pero ¿cómo puedo preservar eso cuando muevo archivos entre servidores?

¿Fue útil?

Solución

Si quieres una solución git, puedes probar

git clone --mirror <oldurl> <newurl>

aunque esto es solo para repositorios desnudos.

Si este es un repositorio no descubierto, también podría hacer el clon normal, seguido de algo como esto:

git fetch origin
git branch -r | grep '^ *origin/[^ ]*

El paso intermedio, por supuesto, se puede hacer de 5000 maneras diferentes, ¡pero esa es una! (tenga en cuenta que la línea de continuación \ no es necesaria después de la tubería en bash, sabe que necesita más información)

Finalmente, sugeriría usar rsync en lugar de scp (¿probablemente con las opciones -avz?) si desea copiar directamente. (¿Qué son exactamente estos errores de cambio de tipo?)

| while read rb; do git branch --no-track ${rb#*/} $rb; done git remote rm origin

El paso intermedio, por supuesto, se puede hacer de 5000 maneras diferentes, ¡pero esa es una! (tenga en cuenta que la línea de continuación \ no es necesaria después de la tubería en bash, sabe que necesita más información)

Finalmente, sugeriría usar rsync en lugar de scp (¿probablemente con las opciones -avz?) si desea copiar directamente. (¿Qué son exactamente estos errores de cambio de tipo?)

Otros consejos

Realmente hice esto, y todo lo que hice fue cargar el repositorio primero y analizarlo. Creo que scp -rp también funcionaría.

" Cambio de tipo " normalmente se referiría a cosas como un enlace simbólico que se convierte en un archivo o viceversa. ¿Los dos servidores ejecutan el mismo sistema operativo?

También es posible que desee probar la solución tonta simple: no se preocupe por cómo llegaron los cambios de tipo, pero deje que git los arregle con un comando de reinicio:

git reset --hard HEAD

Eso solo tiene sentido si (1) todos los problemas pertenecen a los archivos desprotegidos (y no a la estructura del repositorio en sí) y (2) no ha realizado ningún cambio en servidor de noticias que necesitas preservar.

Dadas esas advertencias, funcionó para mí cuando me encontré con el mismo problema, y ??no requiere que pienses en lo interno de git o qué tan bien tu proceso de transferencia de archivos está preservando los atributos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top