Getting started with Git development#

This section and the next describe in detail how to set up git for working with the CompMech source code. If you have git already set up, skip to Development workflow.

Basic Git setup#

  • Install git.

  • Introduce yourself to Git:

    git config --global user.email you@yourdomain.example.com
    git config --global user.name "Your Name Comes Here"
    

Making your own copy (fork) of CompMech#

You need to do this only once. The instructions here are very similar to the instructions at http://help.github.com/forking/ - please see that page for more detail. We’re repeating some of it here just to give the specifics for the CompMech project, and to suggest some default names.

Set up and configure a github account#

If you don’t have a github account, go to the github page, and make one.

You then need to configure your account to allow write access - see the Generating SSH keys help on github help.

Create your own forked copy of CompMech#

  1. Log into your github account.

  2. Go to the CompMech github home at CompMech github.

  3. Click on the fork button:

    ../_images/forking_button.png

    After a short pause, you should find yourself at the home page for your own forked copy of CompMech.

Set up your fork#

First you follow the instructions for Making your own copy (fork) of CompMech.

Overview#

git clone git@github.com:your-user-name/compmech.git
cd compmech
git remote add upstream git://github.com/compmech/compmech.git

In detail#

Clone your fork#

  1. Clone your fork to the local computer with git clone git@github.com:your-user-name/compmech.git

  2. Investigate. Change directory to your new repo: cd compmech. Then git branch -a to show you all branches. You’ll get something like:

    * master
    remotes/origin/master
    

    This tells you that you are currently on the master branch, and that you also have a remote connection to origin/master. What remote repository is remote/origin? Try git remote -v to see the URLs for the remote. They will point to your github fork.

    Now you want to connect to the upstream CompMech github repository, so you can merge in changes from trunk.

Linking your repository to the upstream repo#

cd compmech
git remote add upstream git://github.com/compmech/compmech.git

upstream here is just the arbitrary name we’re using to refer to the main CompMech repository at CompMech github.

Note that we’ve used git:// for the URL rather than git@. The git:// URL is read only. This means we that we can’t accidentally (or deliberately) write to the upstream repo, and we are only going to use it to merge into our own code.

Just for your own satisfaction, show yourself that you now have a new ‘remote’, with git remote -v show, giving you something like:

upstream     git://github.com/compmech/compmech.git (fetch)
upstream     git://github.com/compmech/compmech.git (push)
origin       git@github.com:your-user-name/compmech.git (fetch)
origin       git@github.com:your-user-name/compmech.git (push)