- Use a distributed version control system. Set up f.ex. a Mercurial repository on bitbucket.org and start using it right away. You can commit changes offline (locally) without access and have control over your source revisions even if you don't push it to the repository. If you have no idea what I'm talking about, toread:
http://en.wikipedia.org/wiki/Distributed_revision_control and
http://hginit.comRevision control is not technically needed to work, but you'll need it anyway ;) so start using right away
- Set up a local server, possibly a popular one for your technology of choice (keywords: localhost, apache, nginx, etc.) Set up database systems of you choice (mysql, postgresql, sqlite).
- Commit often, push when sure.
- On your remote server, grab code from your repository (clone it) to your working directory. Pull/update changes manually or set a cron job to do it from time to time, so you got your working copy online (better update manually if it's on production).
- Always keep a separate file for your localhost project settings, which you don't commit to the repository (ignore), so everything works fine with your settings locally, but works with another settings on the remote server.
good luck