Tag Archives: collaboration

Git ad-hoc sharing

I recently found quite a cool way for easy sharing sharing of git code between two machines in a LAN or WLAN (as easy as in mercurial). The following command creates a git alias called “serve” (you only need to run this once so you don’t have to manually call git daemon ... each time):

git config --global alias.serve 'daemon --reuseaddr --base-path=. --export-all --verbose'

Get your IP with ifconfig. After this you can just cd into your code directory, (where the .git dir is)  and then run:

git serve

This will host a small git daemon (server) and you can stop it any time with CTRL+C. While still running simply run this from the fetching computer (client):

git clone git://the_server_ip/

You can also run the server in a parent directory and actually serve multiple git repositories. If you do you need to include the relative path information to the .git-dir containing directory on the client side:

git clone git://the_server_ip/your/subdirs/here/

Subsequent calls like git fetch should also work. If the IP changes just change the origin remote’s link.

For more you might want to have a look at these:
http://stackoverflow.com/questions/5817095/what-tools-exist-for-simple-one-off-sharing-of-a-git-repo
http://stackoverflow.com/questions/377213/git-serve-i-would-like-it-that-simple