On the server with the git repository, create a shell script that exports and zips the code, then download that zip from the other machines.
For example:
cd /pub/git/project.git
git archive --format=zip --prefix=project/ HEAD > /home/project/public_html/downloads/project-dev.zip
Also, to make this generate HEAD on-demand, use a server-side script to execute the shell script and provide the zip file for download.
Here's a basic CFML script that does this - but it can obviously be written in any server-side language.
<cfset OutputFilename = "#ProjectName#-dev.zip"/>
<cfexecute name="/home/project/latest.sh"/>
<cfheader name="Content-Disposition" value="inline; filename=#OutputFilename#"/>
<cfcontent file="./#OutputFilename#" reset type="application/zip"/><cfsetting showdebugoutput="false"/><cfabort/>
EDIT: The cgit web interface to git supports this out of the box. View any commit and you can download a .zip, .tar.gz or a .tar.bz2