I've been using Git for version control on a project I'm working on and I am hooked. Git is a distributed version control system which means that instead of having just a working copy of files, each collaborator has a full-fledged repository. This is one of the things I like most about git compared with cvs and subversion - everything is local, which means everything is fast. Since you have a complete repository, things like viewing logs, diffs and commits don't need to go across the network. You can even work offline.
Git certainly has some useful features. One cool thing you can do with Git is to commit 'hunks' of files, or just specific changes within a file. Let's say you are working on a file and you make three different changes - two of the changes are debugging code and the other change is actual code you want to keep. Git allows you easily commit just the one code change and ignore the other two. Neat huh?
Perhaps my favorite feature so far is 'git bisect'. This tool makes it incredibly easy to find which commit introduced a specific bug. On a big project this can be a real time saver. Here's how it works. Let's say you have a bug in your current working copy. You tell Git that your working copy is 'bad' and give it any previous commit, tag or date that was 'good' (i.e. no bug). Git will then update your working copy to whatever commit is halfway between the two. (thus the name 'bisect'). Then you check for the bug and tell Git if it still exists or not. This process continues with you just telling Git 'good' or 'bad'. Git will determine for you the exact commit that introduced the bug in the fewest steps possible.
Check out the Git website at git-scm.com to download Git and learn more. Scott Chacon maintains the site and also gave the webcast below. Unfortunately the audio is poor, but if you can deal with it, the content is a great intro to using Git.
Git certainly has some useful features. One cool thing you can do with Git is to commit 'hunks' of files, or just specific changes within a file. Let's say you are working on a file and you make three different changes - two of the changes are debugging code and the other change is actual code you want to keep. Git allows you easily commit just the one code change and ignore the other two. Neat huh?
Perhaps my favorite feature so far is 'git bisect'. This tool makes it incredibly easy to find which commit introduced a specific bug. On a big project this can be a real time saver. Here's how it works. Let's say you have a bug in your current working copy. You tell Git that your working copy is 'bad' and give it any previous commit, tag or date that was 'good' (i.e. no bug). Git will then update your working copy to whatever commit is halfway between the two. (thus the name 'bisect'). Then you check for the bug and tell Git if it still exists or not. This process continues with you just telling Git 'good' or 'bad'. Git will determine for you the exact commit that introduced the bug in the fewest steps possible.
Check out the Git website at git-scm.com to download Git and learn more. Scott Chacon maintains the site and also gave the webcast below. Unfortunately the audio is poor, but if you can deal with it, the content is a great intro to using Git.

