Preciso transferir um repositório completo para uma nova máquina sem rede, de preferência como uma entidade de arquivo único. O pacote git permite que um git fetch, git pulloperação estilo em um ambiente sneakernet mas parece assumir que você já tem uma versão de trabalho do repo na máquina de destino.
Qual é a invocação certa para:
- Empacote todas as filiais no repositório atual
- Inicie o novo repo no diretório de destino, ou seja, instale o commit root corretamente
Enviei um patch upstream para esclarecer:
`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>`.
Portanto, $ git bundle create repo.bundle --branches --tagsmelhor corresponde à clonagem.
$ git bundle create repo.bundle --all irá fornecer uma imagem espelhada de sua máquina de origem, incluindo seus refs remotos.
--allopções não estão em minha página de manual parabundle(estou procurando a versão 1.7.6.msysgit.0), nem o uso do arquivo .bundle na seção de URLs paraclone. Isso me dá mais confiança para recomendar seu uso.