Wednesday, September 15, 2010

Looking at Git and GitHub

Recently I decided to take a look at Git and start checking what are the things that makes it different from other version control systems.

First Git was initially designed and developed by Linus Torvalds for Linux kernel development. It is a distributed version control system, usually used from the command line console.

Git was designed based on the experience with Linux in maintaining a large distributed development project. The focus was on speed, distribution, fidelity and no corruption of files.

In Git you get the project doing a clone instead of checkout, this command gets a full copy of the database, getting every version of every files of the project and no the last version like you do on subversion, this allows you to execute commands like diff offline, as a result commands runs faster because it doesn’t have to go over the network.

According to GitHub intro to Git  the size of the projects are smaller compared to svn, even when the git version is storing all version information of files.

One option to start experimenting with Git is using GitHub which is a social code hosting - community oriented. You can create a free account for open source projects.

To get started in GitHub, you must have a SSH public key to push your git repo.

For windows

  • Install Msysgit run it C:\msysgit\msysgit\msys.bat
  • Generate ssh-keys in win/msysgit
    • execute ssh-keygen cmd on Git Bash console
    • you need the public key located in the .ssh directory for example C:\Users\mmarcano\.ssh\ id_rsa.pub

Once you have setup the github account you can create new repositories, import existing git repo or importing an existing public svn repository like googlecode.

Here some links for additional info: GitHup Help, Pro Git, Git Reference

Enjoy! =)