In the past I showed you the amazing deployhq service which lets you deploy a git / mercurial or subversion repo to an ftp/Amazon S3 or Rackspace server.
I´m now using it again and I have to say its more awesome then before.
Just go to deployhq and connect to your repo. Then add an ftp server or whatever you like.
Automatic deployment is available for github without further investigation but for any other git repo you need a special hook.
For Bitbucket you can have a look HERE
After you created the hook and copied the hook url to deployhq it should work.
Don´t forget to add an development / deploy branch to your repo.
The scenario could be:
You have a master branch (your normal branch), an testing branch and production branch.
When you are ready to test your code online you can commit the changes to the testing branch. When everything is fine, commit everything to the production branch.
All files will be copied for you to your server.
And it´s fast:
Transfered 125.5MB with deployhq in 11min (6000 kbit/s upload speed max and it was a project with many small files)
Pretty neat huh?