When almost anything fails, please find some useful tips on Git recovery. https://blog.github.com/2015-06-08-how-to-undo-almost-anything-with-git/
When to use SVN: Centralised management. Centralised control. When to use GIT: Local developments, non hiarchical teams.
Michael Feathers: My Satisfaction with Git: No Abstraction.
The Universe of Discourse : My Git Habits.
github – Git: Recover deleted (remote) branch – Stack Overflow.
Some interesting read: The Real Difference Between Git and Mercurial.
Introduction to Git, Part 1 » phpmaster.
Crafting Commits in Git | The Carbon Emitter.
Someone had problem with SVN and huge development teams. Read the story.
If you are working with GIT, following sites could be of interest. The git reference: http://gitref.org/. The git user-manual: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html.