remote - Restaurando el repositorio git desde la copia de seguridad del paquete
git remote (3)
El paquete no contiene archivos, sino deltas , necesita la base para recrear el contenido del archivo. Tienes que clonar primero, desagrupar después. Inicial en lugar de clonación permitida solo en el caso, donde el paquete requiere 0 refs
No ignore la git bundle verify
antes de desagregar
git-bundle (1) - Página de manual de Linux
Se utiliza para verificar que un archivo de paquete es válido y se aplicará limpiamente al repositorio actual. Esto incluye comprobaciones en el propio formato del paquete, así como la verificación de que los requisitos previos existen y están completamente vinculados en el repositorio actual. git bundle imprime una lista de confirmaciones faltantes, si las hay, y sale con un estado distinto de cero.
Si está creando el repositorio, puede clonar el paquete como si fuera un repositorio remoto en lugar de crear un repositorio vacío y luego extraer o recuperar objetos del paquete.
Creé copias de seguridad de mi repositorio git como en ¿Cómo hacer una copia de seguridad de un repositorio Git local? propuesto con
git bundle create /tmp/foo-all --all
Puedo ver que todas las referencias están allí, incluida una referencia remota creada por git-svn. Ahora no puedo averiguar cómo restaurar este paquete a un repositorio local de nuevo. Estoy bastante seguro de que ya lo he hecho una vez. Intenté git-clone pero eso me da un repositorio con mi paquete de respaldo como repositorio remoto.
Yo tambien lo intenté
git init
git bundle unbundle /tmp/foo --all
pero esto solo enumera todas las referencias ...
Verificando el paquete da:
$ git bundle verify $somewhere/foo.bundle
The bundle contains 12 refs
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/master
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/remotes/git-svn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEAD
The bundle requires these 0 ref
$somewhere/foo.bundle is okay
I versión más reciente de git es suficiente para hacer:
git clone bundle.file
los comandos completos:
mkdir ~/git
cd ~/git
git clone /path/to/bundle.file
Restaurará completamente el contenido del repositorio de git Your (que se compilará como fuente normal). No necesitas ningún otro archivo. El archivo de paquete es suficiente.
Es aconsejable verificar siempre el archivo de paquete antes de desagruparlo de la siguiente manera:
git bundle verify /path/to/bundle.file
Respuesta corta:
$ git bundle verify $somewhere/foo.bundle
$ git clone $somewhere/foo.bundle
Cloning into ''foo''...
Receiving objects: 100% (10133/10133), 82.03 MiB | 74.25 MiB/s, done.
Resolving deltas: 100% (5436/5436), done.
$ cd foo
$ git status
...
Lazy Badger dijo esto, pero está en el último párrafo. :)