Linus on keeping a clean git history (2009)
This highlights the only thing I don't like about Git. It's an immensely capable tool, but it gives no guidance regarding the <i>right</i> way to do things.<p>Our own teams have a set of practices which are similar but different from what Linus outlines here. And different projects on my company use different practices from those.<p>The worst thing is that there's no way of enforcing these workflows or practices other than out-of-band social conventions. And so minor mistakes happen, all the time. Our Git projects are never as pretty as they should be.<p>In other words, Git provides an awesome set of primitives for source control. I'm not sure what it'd look like, but I'd like to see a product that built on those primitives to enforce a little more order on projects.