1. Regard deployment "best practices" as "minimum requirements".
Seriously. This is talked about everywhere so anyone reading this probably knows it already, but I cannot emphasize enough how important it is to have a deployment strategy.
Put everything over revision control and commit often using clear and meaningful commit messages. Develop all functionality on a dev server and test it on a staging server that matches your live environment before finally pushing it up to your live environment.