Given by Stephen Ball on August 17 2013 at Steel City Ruby in Pittsburgh, PA
Your code can only say what it does right now. You can’t look at a method and see its history: the alternative approaches that have been considered, the algorithms that have already been outgrown, the simpler code that has been replaced, or the complicated code that’s been refactored.
Not capturing this knowledge is a huge loss. In Deliberate Git I'll share how to use Git to write detailed commits that craft a cohesive story about the code without giving up a good programming flow.