Linus Torvald posted on his blog ”Happiness is a warm SCM“:
Part of the problem is that ‘git’ is such a flexible tool that you can use it in various modes, and mix things up freely. The whole distributed nature means that there’s no gatekeeper, you can do whatever you want. And the flexibility and power is good, but it does mean that it’s also easy to make a mess of it - the old UNIX philosophy of giving people rope, and letting them hang themselves with it if they want to. So it takes time for people (me included) to learn the rules that work. And it seems people are learning. And that feels really good.
He has some comments on what works and doesn’t in the comments. It’s an interesting read.