Ultimately, you need to be doing #3, but it helps to go through #1 and #2 to get a sense for how awesome deployment management tools are.
A couple things to keep in mind: - server authentication with git: you'll want to use public key-based methods to pull from git so you don't have to deal with entering passwords - dev vs prod environment settings: you'll want to have a smooth way to transition config settings between your dev and prod environments so you aren't editing files everytime you deploy.
These are just a few tips-- the overall guiding principle is to automate everything. Anytime you find yourself doing a task more than twice, write a script to do it.
It doesn't cover everything, but what it does is top-notch.