FWIW, here are the basic commands I use for working with the Rakudo git repository on a regular basis. This is based on a very svn-centric view of working with a repository; git allows other management models, but this one seems to work well for Rakudo. Note that I have a commitbit to the Rakudo master repository -- see below for the workflow for non-commitbit users.

1. To checkout a copy of the master repository:

    git clone git@github.com:rakudo/rakudo.git

2. To modify files in my local copy of the repository

    cd rakudo
    vi src/foo.txt

3. To commit those modified files to my local copy of the repository, any of

    git commit src/foo.txt     # just one file
    git commit src             # all modified files in src/
    git commit .               # all modified files in current dir and below

4. To add and commit a file to the local repo

    git add src/bar.txt
    git commit src/bar.txt

5. To grab any other updates from the master repository

    git pull

6. To push the changes in my local repository back to the master repository

    git push

That covers 90% of my usage of git for the Rakudo repository. If I didn't have a commitbit to the master repository, a simple mechanism for creating a patch that can be submitted to RT is:

1. Get a copy of the master repository

    git clone git://github.com/rakudo/rakudo.git    # note this is different for non-committers

2. Modify files in my local repository

    vi src/foo.txt

3. Format the patch for RT:

    git diff >mypatch.diff
    # send mail to rakudobug@perl.org with mypatch.diff as an attachment