i suggest you dev locally, push to your remote (e.g. github), ssh to your live server, then git pull the changes from github to the live site.
recently i have been using a 3 step process:
- dev locally in a feature branch. once ready merge into a CI branch.
- test on CI server. jenkins sees the new commit to the CI branch (github post commit hook), pulls down the changes and auto builds it on the test server and runs all my unit tests.
- if all tests pass, jenkins builds the docs and commits them to the docs branch. merges CI into master and pushes everything the remote server. github sees this new commit to master (post commit hook again) and issues a command to the live server to pull the new changes. if the unit test fail it emails me and quits.
do a bit of final live site testing and repeat.