Les faisceaux de!
Le flux de travail avec git bundle va être essentiellement le même que n'importe quel autre flux de travail. Cela peut ne pas sembler terriblement utiles conseils, mais ici il est: quelle que soit l'utilisation de flux de travail que vous utilisez normalement, et de remplacer "push/pull" avec "porter un bundle de-ci de-là sur un lecteur flash, puis tirez".
La page de man a fait une assez bonne soluce pour arriver va avec, mais c'est plus d'un exemple. Par souci d'exhaustivité, voici une version légèrement modifiée de lui, en montrant comment déplacer des informations de deux façons:
# on hostA, the initial home of the repo
hostA$ git bundle create hostA.bundle --branches --tags
# transfer the bundle to hostB, and continue:
hostB$ git clone /path/to/hostA.bundle my-repo
# you now have a clone, complete with remote branches and tags
# just to make it a little more obvious, rename the remote:
hostB$ git remote rename origin hostA
# make some commits on hostB; time to transfer back to hostA
# use the known master branch of hostA as a basis
hostB$ git bundle create hostB.bundle ^hostA/master --branches --tags
# copy the bundle back over to hostA and continue:
hostA$ git remote add hostB /path/to/hostB.bundle
# fetch all the refs from the remote (creating remote branches like hostB/master)
hostA$ git fetch hostB
# pull from hostB's master, for example
hostA$ git pull
# make some commits on hostA; time to transfer to hostB
# again, use the known master branch as a basis
hostA$ git bundle create hostA.bundle ^hostB/master --branches --tags
# copy the bundle to hostB, **replacing** the original bundle
# update all the refs
hostB$ git fetch hostA
# and so on and so on
La clé de chose à remarquer est que vous pouvez ajouter un bundle à distance, et d'interagir avec elle comme vous le feriez avec tout autre à distance. Pour mettre à jour à distance, il suffit de déposer dans un nouveau bundle, en remplacement de la précédente.
J'ai aussi pris une approche légèrement différente pour la sélection d'une base. La page de man utilise des balises, toujours tenus à jour avec les dernières références qui ont été transférés à l'autre hôte. J'ai simplement utilisé la distance branches, qui se rapportent à la dernière refs transféré de l'autre hôte. C'est un peu inefficace; vous finirez par le groupement de plus que vous avez besoin, puisque c'est un pas en arrière. Mais les lecteurs flash sont importantes, les grappes sont petites, et en utilisant les références que vous avez déjà, au lieu d'avoir à prendre une étape supplémentaire, et d'être prudent sur les balises permet d'économiser beaucoup d'efforts.
La chose qui rend les paquets, un peu de difficulté, c'est que vous ne pouvez pas pousser, et vous ne pouvez pas "rebase". Si vous souhaitez que le bundle fondé sur une nouvelle base, vous devez le recréer. Si vous voulez que les nouveaux s'engage en elle, vous avez à le recréer. Ce tracas donne lieu à ma suggestion suivante...
Repo sur une clé usb
Honnêtement, à moins que votre repo est vraiment grand, ce pourrait être aussi facile. Mettre nue un clone sur un disque de pouce, et vous pouvez pousser et tirer à partir de deux ordinateurs. Le traiter comme votre connexion réseau. Besoin de transférer à la centrale de pensions? Brancher!