Set Up Your Own Git Repository Hosting Service in Three Minutes
You might have seen my earlier post "A Review of Free Code Repositories".
Well I forgot about hosting your own. Really handy for hobbyist development. I have one of those free developer servers from Amazon out there somewhere. I don't use it much except to demo the occasional site and so on.
I decided that it was a good idea to set it up as a git repository and show you here how to do this. If you are using something Ubuntu-ish remotely then this should take about three minutes.
A Word of Explanation
This is the simple setup, it avoids creating 'git' user on the remote server, but you DO need to use a seperate key for using the git service and I show you that first.
On your local machine:
# echo "Host gitserver Hostname ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com User git-col PreferredAuthentications publickey IdentityFile ~/keys/git-col.pub " >> ~/.ssh/config # mkdir ~/keys
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/col/.ssh/id_rsa): git-col.pub # do NOT accept the default
# cp git-col* ~/keys # scp git-col.pub ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com: # ssh ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com
On your remote host you are now logged in as 'ubuntu':
# sudo apt-get install git # git clone git://github.com/sitaramc/gitolite # ./gitolite/src/gl-system-install # gl-setup -q ~/git-col.pub # exit
On your local machine:
# git config --global user.name "Your Name" # git config --global user.email your@email.address # git clone gitserver:gitolite-admin # exit
That's it really. To create a new repository called dummy and initialize it, you can do something like this.
On your local machine:
# set the new repository name
export repo=dummy
# update the gitolite conf file with your new repository
cd ~/gitolite-admin
echo " repo ${repo}" >> conf/gitolite.conf
echo " RW+ = @all" >> conf/gitolite.conf
# push the config to your server
git commit -m "added new repository ${repo}" conf/gitolite.conf
git push
# make sure you cd to an existing directory!
mkdir ~/Projects
cd ~/Projects
# pull back the new empty repository
git clone gitserver:${repo}
# go to repository and make any change
cd ${repo}
echo "*.pyc" >> .git/info/exclude # I use python
touch README
# do your first push back to master
git add .
git commit -am "repository ${repo} pushed to origin on gitserver"
git push origin master
You'll be using that last code section again, so you might want to make it into a script.
Never type anything you don't understand.
If I've made any mistakes then please let me know.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





