Using your favourite version control is the only sensible way to deploy anything.
Git is not only about collaboration and distributed VCS it is also a serverless VCS (by definition) - so you can deploy from your dev machine to your deployment target.
To summarise when setup properly to deploy your changes is as simple as;
git push hub master
For more information A web-focused Git workflow and Using Git for Deployment
I'm not going to answer the subjective bit of the question; there are a myriad of reasons why I'd deprecate FTP - but it is a valid way of transferring files as long as you understand the limitations of the technology.
I will however say that you absolutely must be using version control within your deployment strategy.