--- SETTING UP MEGAZEUX GIT FOR PUSHING CHANGES --- Normally as a developer you won't be able to push changes directly to the megazeux Git repository. Instead, you can fork megazeux, and I'll pull your changes in after I review them. However, in special circumstances I'll give you direct access to the main repository. This documents covers that setup. --- REGISTER ON GITHUB --- This step should be easy, just go to http://github.com/ and register. Click "Login" on the top right. Click "Pricing and Signup". Click "Create a free account". Register with your preferred details. Paste in an ssh key (see below). Click "I Agree" (if you do!) --- GENERATING AN SSH KEY --- This assumes you've already followed the instructions for installing msys-git. The msys-git distribution ships with a version of ssh-keygen for generating ssh keys required for use with github. Start -> Run -> "cmd" Run "ssh-keygen -t dsa -f id_dsa" Enter no passphase (it's more secure not to but it's more annoying to use) Check the directory you're currently in. You should have two files: id_dsa <-- private key, never share this with anybody! id_dsa.pub <-- public key, ok to share Open the .pub file in notepad (or similar) and copy/paste the entire thing into the github signup ssh key box. --- COPYING KEY TO HOME DIRECTORY --- The keys need to be moved to a place that ssh / msys-git will find them. If you're using git from msys, this needs to be: C:\MSYS\home\\.ssh Assuming you installed msys to C:\MSYS. You need to create the ".ssh" directory and put the files in there. --- RECONFIGURING GIT REPO FOR SSH --- If you've done a "git clone" of the megazeux git repository already, you need to change it to use ssh access: cd megazeux git config --replace-all remote.origin.url git@github.com:ajs1984/megazeux.git NOTE: ajs1984 above is correct and should not be adjusted for your username. This is the location of the repository on github servers. --- CONFIGURING GIT REPO FOR USER/EMAIL --- If you haven't already set up a user and email, you MUST do this now, or the git history you push will have a corrupt author: git config --replace-all user.name "Alistair John Strachan" git config --replace-all user.email alistair@devzero.co.uk Please don't use my name and email! :-) --- CHECKING STUFF IN --- Obviously I can't cover everything git can do; it's a powerful tool. Here's some basic commands for the kind of workflow I'd expect somebody with commit rights to use. git pull <-- get all changes on all branches git reset --hard origin/master <-- reset working tree to origin/master (this will DESTROY local changes) git add path/to/files/changed git status <-- check you didn't miss anything git diff --cached <-- carefully review changes git commit -m "Descriptive message for changes" git log <-- Check log and attribution is correct git push <-- This pushes the changes out so other people can see them! --ajs.