- Use some version control system , such as Git.
- Use some upgrade scripts, scripts to check if the current version (production version) is the same as in the remote repository (the latest, updated when you make changes) and - if the versions are different - update the production.
- Call the script from point 2. on an ongoing basis, for example, using cron.
This will be the fastest (based on Git internal mechanisms) solution, very reliable (you will use the version control system) and quite safe (you will not overwrite, for example, files uploaded by users).
There are several examples of such tools on the Internet.
Git cron : fooobar.com/questions/118583/... p >
" ", , -, push ( , , GitHub).