You can deploy the same way you'd push to any other remote, no FTP client, no zip files. This sets up a bare repository on your account that automatically checks itself out into your site's public directory on every push.
1. Create a bare repo on your account
2. Add a post-receive hook
This is what actually moves the files into public_html after a push lands. Create ~/repo/site.git/hooks/post-receive with:
Make it executable with chmod +x hooks/post-receive. Every push to main now updates the live site automatically.
3. Push from your local machine
SSH key required
This assumes key-based auth is already set up, see Set up SSH key-based authentication if you haven't done that yet.