2008-09-17 15 views
9

Suponiendo que el acceso a la red es esporádico sin servidor central, ¿cuál sería la mejor manera de usar git para mantener sincronizadas tres o más ramas? ¿Hay alguna forma de extraer solo mis deltas, enviarlos por correo electrónico y fusionarlos en el otro extremo?Git over Email

Respuesta

22

Si bien "git format-patch" y "git am" son excelentes maneras de administrar parches de fuentes que no son git, para los repositorios de git debes investigar "git bundle".

"git bundle" y los subcomandos "crear" y "separar" se pueden usar para crear y usar un blob binario de confirmaciones incrementales que se pueden usar para transferir el historial de ramas a través de un enlace "débil" mecanismo (por ejemplo, correo electrónico, snail-mail, etc.).

paquetes de git conservarán las identificaciones de confirmación, mientras que el formato-revisión/am no dará como resultado que las confirmaciones de destino no sean idénticas (SHA1 diferentes).

+0

Agradable. He oído hablar de los controladores basados ​​en parches antes (ver otras publicaciones) pero git-bundle es algo que realmente necesito. http://www.kernel.org/pub/software/scm/git/docs/git-bundle.html –

5

Consulte las páginas principales para git-format-patch y git-am. Esta es una de las formas en que el sistema fue originalmente diseñado para trabajar.

2

Hay algunas herramientas en git a utilizar para enviar parches o remiendos de importación por correo: git-am (aplicar los parches de un buzón de correo), git-format-patch (preparación de correo electrónico para enviar por correo), git -send-email (envíe una colección de parches por correo), etc. man 1 git tiene una lista completa.