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/
SVN or 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
The Real Difference Between Git and Mercurial
Some interesting read:
Introduction to Git, Part 1 » phpmaster
Crafting Commits in Git | The Carbon Emitter
Compare TFS against others
If you want to select in between different source control tools, I did some search on the internet and found following articles with comparisons:
Happy reading.
Moving from SVN/GIT to Mercurial
Someone had problem with SVN and huge development teams. Read the story.