Necesito transferir un repositorio completo a una nueva máquina que no esté en red, preferiblemente como una entidad de archivo único. El paquete git permite una git fetch, git pulloperación de estilo en un ambiente sneakernet pero parece suponer que usted ya tiene una versión de trabajo de la cesión temporal en la máquina de destino.
Cuál es la invocación correcta para:
- Agrupar todas las ramas en el repositorio actual
- Inicie el nuevo repositorio en el directorio de destino, es decir, instale correctamente la confirmación de root
Envié un parche en sentido ascendente para aclarar:
`git clone` can use any bundle created without negative refspecs
(e.g., `new`, but not `old..new`).
If you want to match `git clone --mirror`, which would clone other
refs such as `refs/remotes/*`, use `--all`.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use `--branches --tags` for
the `<git-rev-list-args>`.
Así que $ git bundle create repo.bundle --branches --tagsmejor coincide con la clonación.
$ git bundle create repo.bundle --all proporcionará una imagen reflejada de su máquina fuente, incluidas sus referencias remotas.

--allopciones no están en mi página de manual parabundle(estoy viendo la versión 1.7.6.msysgit.0), ni tampoco el uso del archivo .bundle en la sección de URL paraclone. Me da mayor confianza recomendar su uso.git bundle create <file> <git-rev-list-args>. Correrman git-rev-list(oman git-log) te daría--all. Pero estoy de acuerdo en que debería ser más visible en la documentación del comando del paquete.git show-ref", que no incluye [lista] las opciones de git-rev-list.git-rev-list-argses como se seleccionan las referencias que se muestran con elgit show-refcomando.--allincluyó ramas de seguimiento remoto para mí (git 2.1.4). Pude verrefs/remotes/origin/*congit bundle list-heads bundlefileogit ls-remote bundlefile. Aunque recuperarlos del paquete es un poco complicado.Primero clone el repositorio e incluya la
--mirroropción.git clone --mirror [email protected]:path/repo.gitEsto asegura que todas las sucursales remotas también sean sucursales locales listas para agruparse.
Entonces corre
git bundle create repo.bundle --allcomo se describe en la respuesta de Jakub Narębskifuente
Te sugiero que tar o zip la carpeta .git y simplemente descomprimirla en la nueva ubicación y luego hacerlo
git reset --hard HEAD. Todo lo que se requiere para todas las ramas está en .git y todo lo que debe hacer es ajustar los controles remotos en el archivo .git / config o eliminarlos.fuente