Duplicating Complete WordPress Install for Development and then Redeployment?

The environment I work in has a development, staging and production server. We set up a Git repository and don’t track the wp-config file. We always copy the DB down, production -> staging -> development, and not the other way around.

Only thing you have to do when you pull commits after your create plugins, update plugins or modify URL stuff is activate, deactivate/reactivate and flush the permalinks.