As someone who has learned the ins and outs of git, I struggle to think of a better model for revision control. I never have issues with it anymore, and it took maybe a day to learn how it works under the hood. There's a great article on git internals directly in the git manpages.