Copie un git-push a otra computadora, o realice incrementos incrementales menores?

Actualmente estoy de vacaciones y he estado trabajando, comprometiéndome y presionando a Github. Nuestra connection a Internet aquí es bastante mala (punto a punto inalámbrico en las montañas) y cae muy regularmente.

Pude presionar a github durante aproximadamente una semana y media, pero durante los últimos días no he podido. Puedo hacer cambios más pequeños a otros repositorys, pero creo que este es bastante grande, y he empeorado la situación al agregar más y más confirmaciones.

Cuando bash presionar (usando las extensiones de git en Windows) aparece el siguiente error:

c: \ Archivos de progtwig (x86) \ Git \ bin \ git.exe empujar maestro "origen": maestro Hecho ERROR FATAL: Error de networking: connection causada por el software abortar fatal: file sha1 '' error de escritura: tubería rota fatal: el extremo remoto colgó inesperadamente error: no se pudieron enviar algunos refs a 'git@github.com: plenderj / myproject.git'

Puedo ver la actividad de la networking saliente, y luego caerá, y un time después, Git se queja. Probablemente he intentado presionar unas 10 o 15 veces ahora.

¿Hay alguna manera de dividir lo que Git está tratando de cargar en trozos más pequeños, o puedo crear algún tipo de file diff, aplicarlo a mi computadora en casa y luego uploadlo desde allí? En el peor de los casos, copie y pegue la carpeta completa / src / en un dispositivo de memory y lo haga desde casa, pero no puedo evitar pensar que hay una mejor manera. ¿Alguna sugerencia? 🙂

Use git-format-patch para comstackr una serie de parches de correo electrónico que puede aplicar usando git-apply en el otro extremo.

ver man git-format-patch para más detalles.

Para crear parches para tus cambios desde que pull ed del master:

 git format-patch origin/master 

Esto crea una serie de files que puede enviar por correo electrónico o cargar.

Si tiene una configuration de correo electrónico para git en su computadora, puede enviar un correo electrónico directamente usando

 git send-email 

Si tienes una configuration de correo electrónico para git en el origen, puedes aplicar directamente usando

 git am 

También puede ver su historial, elegir una revisión en algún lugar de su master y luego decir

 git push <remote> <revision>:tmp-branch 

De esta forma, puede enviar cambios de forma incremental de forma manual, ya que git nunca copy el mismo object dos veces. Un último git push <remote> master actualizará la twig master .


Otra opción es git bundle . Puedes crear un file con tus commits sin usar diciendo

 git bundle create my.bundle origin/master..master 

Entonces puede transferir este file usando algún método robusto (¿rsync?) Y aplicarlo en el repository remoto con un

 git pull /path/to/my.bundle master