I'm really impressed with it - I've solved all the levels and learned some new things I didn't already know along the way. They guy is actively working on it too; soon to come are remote servers and teammate interaction.
It assumes you already have basic knowledge of git and focuses on branching - normally for commits you would add files and give a commit message, but this allows you to just write "git commit" since the messages and files added are irrelevant. It also assumes that all merges can be made automatically, so you won't learn how to resolve merge conflicts.
It's funny. Git was my first Version Control system and I learned it very quickly without many issues. Currently, I am the "guru" that all my colleagues go to when they can't understand something. They still moan and complain from time to time about missing Subversion -- I got hired on right after they switched to Git.
I contributed to an open source project a while back that used SVN. When I tried to learn it, it was completely opposite for me. Why does branching suck so much? Why is everything so damn slow? Why is renaming so awkward and broken? Why is this system so bad at resolving conflicts? I ended up just figuring out how to use git-svn and everything was gravy again.
Yeah, I learned git pretty quickly too and I really like it. I was scared at first and I thought everything was going to be painful, but every time I was delighted at ho simple it turned out to be. There have been several times where I expected merge conflicts and it has somehow managed to correctly merge everything :)
but i get the impression it somehow lets lots of people work on the same program,
Yes, it's very very helpful for that because otherwise you would have to send code to each other by email or something and everyone would have to keep track of everything and merge in changes themselves, etc.
how can you not have shitloads of bugs??
Because it doesn't let people add code that hasn't been mixed into everyone else's code.
I dont know what it is but i get the impression it somehow lets lots of people work on the same program, how can you not have shitloads of bugs??
People usuallyhopefully test their code before asking for it to be pulled upstream. Maintainers usuallyhopefully won't even look at code *unless* it has been tested and demonstrated that it already works. It's also very easy to pull in other people's code so that you can test your code to make sure it works with the lastest changes first.