Using git without an internet connection

Have you ever been in a situation where you are working on a project with someone in the same room and you want to keep your files in sync? What if you want to avoid sending tarballs or zips back and forward but you don't want to go to the effort of setting up a version control server?

If you just want to get started on the work with minimal time spent on setup then you can use the decentralized nature of git to your advantage.

If you have a external hard drive like a USB key or similar you can do the following:

cd /path/to/usbstick
mkdir code_repo
cd code_repo
git init --bare
cd /path/to/local/code
git remote add usb /path/to/usbstick/code_repo
git push usb --all

This make a bare repository on the USB key. A bare repository is just one that doesn't have a working tree attached to it. All the files that git needs to track content will all be there. You then tell git that the repository named "usb" can be found on the USB drive by using "git remote". Finally you push your files over to the usb key repository.

Now that the repository is set up on the USB key you just need to set up the other computer(s) to pull from there:

cd /path/to/local/code
git remote add usb /path/to/usbstick/code_repo
git fetch usb --all

from there it's just a matter of "git push usb --all" and "git fetch usb --all" to keep everything up to date.

If you want to know more I'd highly recommend reading the material over at