2011-09-06 12 views
9

Así que estoy haciendo esto bastante grande git-push, alrededor de 2 GB de datos que se envían a mi servidor. De repente, mi conexión wifi muere. Entonces, después de transferir más de 250 MB por mi conexión lenta, tengo que comenzar de nuevo, solo para arriesgarme por completo.Continuar un git-push interrumpido (reanudar la carga)

[/ diatriba]

Al hacer un git-push a un control remoto SSH, ¿hay alguna manera de continuar la transferencia después de que no?

Si no, ¿cuál es la mejor manera de transferir el repositorio a través de una conexión escamosa, mientras se evita tener que cargar todo de los archivos?

Gracias!

+0

Estoy bastante seguro de que el extremo del servidor eliminará cualquier transferencia incompleta de objeto cuando se cierre la conexión, pero no estoy 100% seguro. – cdhowie

+0

Creo que si se interrumpe, tienes que volver a hacerlo desde cero. – manojlds

Respuesta

3

rsync su directorio .git de su repo a un nuevo directorio, digamos newdir/.git en su servidor. Luego ssh a ese servidor y haga un pago por git en cualquiera de las sucursales que tenga. A continuación, agregue el repositorio local al que desea enviar originalmente como un control remoto y realice un envío local.

Como rsync es inmune a la interrupción de la red, debe poder continuar siempre que eso suceda.

+0

Puede copiar el directorio .git existente en el servidor al directorio newdir/.git antes de iniciar rsync, pero puede que no le ahorre mucho en términos de datos que deberán transferirse debido a la forma en que git crea los archivos pack. – holygeek

+0

Buena idea, pero creo que esto podría ser ineficiente si el repositorio es incluso más grande que el empuje que se debe realizar. – a3nm

+1

asegúrese de usar rsync -P, para permitir transferencias parciales. – user1001630

Cuestiones relacionadas