git bundle
Administración
Empaqueta commits y ramas en un solo archivo
El comando 'git bundle' empaqueta commits, ramas y tags en un solo archivo. El archivo se comporta como un remoto: puedes clonar o hacer fetch desde él. Así se mueve un repositorio sin red — en una memoria USB, por correo, a una red aislada. Un bundle incremental (A..B) solo lleva los commits nuevos y requiere los antiguos en el lado receptor.
Sinopsis
git bundle create <file> <git-rev-list-args>
git bundle verify <file>
git bundle list-heads <file>
git bundle unbundle <file>[ ] opcional| o<arg> valor a sustituir... repetible--flag opción
Opciones
Elegir la opción adecuada
Formas de mover un repositorio
Con y sin red
| Comando | Necesita red |
|---|---|
git push / git clone <url> | Sí |
git bundle + copy the file | No |
Ejemplos
Empaquetar una rama
git bundle create shop.bundle mainTodos los commits de main.
Clonar desde él
git clone shop.bundle shopUn repositorio a partir del archivo.
Incremental
git bundle create update.bundle v1.0..mainSolo los commits posteriores a v1.0.
Ejemplos de flujos de trabajo
1
git bundle create shop.bundle --allEmpaquetarlo todo
2
git clone shop.bundle shopDesempaquetarlo en el otro ordenador
Solución de problemas
error: Repository lacks these prerequisite commits
Causa: El bundle es incremental
Consigue un bundle completo, o trae antes el historial que falta
Consejos y trampas
Buenas prácticas
- ✓Ejecuta git bundle verify antes de enviar un bundle.
Errores comunes
- ✗Crear un bundle incremental para alguien al que le faltan los commits antiguos — verify indica lo que se requiere.
Preguntas frecuentes
A:
Puede serlo: git bundle create backup.bundle --all captura todas las ramas y tags.