Although I don't think this question belongs in StackOverflow, I have some experience about changing a running website.
We had 3 different servers: Development, Stage, Production. We did all the development in development server. Then when we decided to migrate, we copied public_html folder with a different name to the same folder that current public_html resides in. Then we would swap names of the folders and, voila. We had a script that did that automatically: Pull from git, swap names.
We tested the script on stage server and if it didn't fail, we applied the same to the production server.
You can also change apache config to look for your new folder. Think of it as 'double buffering', old site is a buffer. The new site is loaded into a new buffer, then apache configuration is changed so that the new folder is used, ie. the buffers are swapped.
Swapping names is no big deal and I didn't experience any bad side effects to this method. But I guess changing apache config is a better idea.