Using Git DVCS (distributed version control system) and GitHub to effectively collaborate on an open-source software project

While collaboratively working together on an open-source project (which aims to provide a fresh web app framework in this concrete case) and moves at a fast pace it conseqeuntly turned out that using the standard approach of centralized VCS for it soon hit its limits. Therefore, we jointly decided in the community to switch to a decentralized one, namely Git. This DVCS was originally developed by Linus Torvalds for managing the development of the Linux kernel. Its main concept basically is that everybody has his/her own complete "clone" of the code repository. So there isn't a single centralized code repository as in the structure/architecture of Subversion, but a number of decentralized ones. As a consequence Git was also developed to have very powerful and convenient capabilities of merging branches of code repository clones. This feature which is also one of Git's biggest strengths shall be described and explained in more detail. Git's basic usage is mainly command line based and can especially in the beginning pose quite a steep learning curve on new users. So it should be given a short introduction to Git's main concepts and concrete usages as well. Another very nice companion to Git is the Git code repositories hosting site/service GitHub ( which can make using Git simpler and furthermore improve collaborative development processes and tasks of a programming/development project. This shall also be presented and explained.
1 answer

How to use Git DVCS (distributed version control system) and GitHub to effectively collaborate on an open-source software project

Here are the basic/central steps to take.

  1. Register an user account at
    (In this example we suppose the user is called hugo and has as email address.)
  2. Create a repo on GitHub.
    (We'll call it foo-project here.)
  3. Install Git (e.g., on OS X with MacPorts).
    sudo ports install git-core
  4. Set Git user email.
    git config --global
  5. Init repo.
    cd foo-project
    git init
    git add .
    git -m commit 'First commit.'
    git remote add origin
    git push origin master

Congrats, your project is ready to be used with Git and GitHub now.
Here's a good overview of Git and here are some useful notes with common commands.

Have fun! :-)