CHASM

Crytpograph-Hash-Algorithm-Secured Mirroring

The Git Experience

Git is, without a doubt, the SCM of choice these days. I started using Git about a year ago, beginning with my exploration of the Linux Kernel. Eventually I began using git for my own purposes, although I rarely ventured outside of a few basic commands. Working on CHASM has required me to become proficient with Git; fortunately, my summer mentors, Ben Boeckel and Rob Escriva, are well-versed in the use of the program.

A week or two into the summer coding session, I happen to make a true rookie mistake, and did a 'git reset --hard' on my current tree. Initially I was not committing my work because I was afraid of breaking the build, this lead to the stupid decision to keep about 3 days worth of work uncommitted on one branch. Sometime after, I was trying to merge with another branch, ended up not liking the results, and did the reset. That was my Git lesson the hard-way -- I am sure some people can relate.

After that, I took a side excursion to learn a little bit more about Git. One resource that proved itself useful, was a very informative lecture given by Rob. I recommend this as it is an excellent explanation into the way Git works. Rob starts with an overview of Git itself, giving a nice breakdown of the design and the theory on which it is built. He then discusses some commands pointing out how all the concepts gel together, and illuminates these points with concrete examples. Throughout the lecture you gain an insightful look into how Git can best be used; Git users of all levels will find this to be a valuable resource. (Rob does make one fallacious statement based on unsound logic, he states that the editor of choice is Vim, of course we all know Emacs is far superior!) Secondly, and of course not to be forgotten, are the Git manpages . These are some of the most complete I have ever read, and provide a number of examples, along with sample workflows.

-mfm

Copyright © 2010 Robert Escriva ¦ Powered by Firmant