Git Survival Tips: How to Undo and Recover from Your Mistakes