J'ai besoin de transférer un dépôt complet sur une nouvelle machine non connectée au réseau, de préférence en tant qu'entité de fichier unique. Le paquet git permet git fetch
, git pull
opération de style dans un environnement sneakernet mais semble supposer que vous avez déjà une version de travail de la mise en pension sur la machine de destination.
Quelle est la bonne invocation pour:
- Regroupez toutes les branches du référentiel actuel
- Démarrez le nouveau dépôt sur le répertoire de destination, c'est-à-dire que le commit racine est correctement installé
J'ai envoyé un correctif en amont pour clarifier:
`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>`.
Donc, le $ git bundle create repo.bundle --branches --tags
meilleur correspond au clonage.
$ git bundle create repo.bundle --all
fournira une image miroir de votre machine source, y compris ses références distantes.
--all
options ne sont pas dans ma page de manuel pourbundle
(je regarde la version 1.7.6.msysgit.0), ni l'utilisation du fichier .bundle dans la section URL pourclone
. Cela me donne une plus grande confiance pour recommander son utilisation.