¡Paquetes!
El flujo de trabajo con paquete git va a ser esencialmente el mismo que cualquier otro flujo de trabajo. Esto puede no parecer un consejo terriblemente útil, pero aquí está: use cualquier flujo de trabajo que normalmente usaría, y reemplace "empujar/tirar" con "llevar un paquete aquí y allá en una unidad de memoria flash, luego tire".
La página del hombre en realidad tiene un tutorial bastante bueno para seguir adelante con esto, aunque es más un ejemplo de una sola vía. En aras de la exhaustividad, aquí es una versión ligeramente modificada del mismo, mostrando cómo mover la información en ambos sentidos:
# 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 clave a notar es que se puede añadir un paquete como un control remoto, e interactuar con él solo como lo harías con cualquier otro control remoto. Para actualizar ese control remoto, simplemente inserte un nuevo paquete, reemplazando el anterior.
También he tomado un enfoque ligeramente diferente para elegir una base. La página man usa etiquetas, siempre actualizadas con los últimos refs que se transfirieron al otro host. Simplemente he usado las ramas remotas, que se referirán a los últimos refs transferidos desde al otro host. Es un poco ineficiente; terminará empacando más de lo que necesita, ya que está un paso atrás. Pero las unidades flash son grandes, los paquetes son pequeños, y usar los refs que ya tienes en lugar de tener que dar un paso adicional y tener cuidado con las etiquetas ahorra mucho esfuerzo.
Lo único que hace que los paquetes sean un poco problemáticos es que no se puede presionar hacia ellos, y no se puede "volver a establecer la base". Si desea que el paquete se base en una base nueva, debe recrearlo. Si quieres nuevas confirmaciones, debes volver a crearlas. Esto da lugar a problemas de mi siguiente sugerencia ...
Repo en una unidad flash
Honestamente, a menos que su repo es muy grande, esto podría ser tan fácil. Ponga un clon desnudo en una memoria USB, y puede empujar y sacar desde ambas computadoras. Trátelo como su conexión de red. ¿Necesita transferir al repositorio central? ¡Conéctalo!
Si están conectados a internet, puede usarlos con DopBox: vea http://stackoverflow.com/questions/3632723/git-with-dropbox/3633346#3633346 – VonC
Disculpe, ninguno de ellos estará conectado a Internet. Agregó eso a la pregunta. – matli