How to Work Seamlessly Between Development, Staging, and Production Sites in wordpress

There’s a good article at WP Tavern that suggests some good methods. There is also a plugin called WP Pusher.

With regard to using the different domains, like dev, staging, production, etc. you could set up different remote repos for dev, staging, production, etc. And then you can push to them individually depending on what stage of development you are in.

However, if you are using Ubuntu locally, I would set up a quick LAMP stack for your development environment. That way, you could see changes live without needing to push to your remote repo each time you make a change.